Приложение Webview не загружает изображения Android - PullRequest
0 голосов
/ 09 мая 2019

У меня есть Android-приложение Webview с кнопкой загрузки, которая пытается загрузить изображение из корзины S3. Примерно полтора года назад все работало нормально, но вдруг перестало работать. Если я перейду к варианту браузера на сайте, все будет работать. Так что я думаю, что это как-то связано с приложением.

У меня есть addDownloadListener, и я добавил его в манифест Android.

Ниже мой addDownloadListener:

private void addDownloadListener () { TurbolinksSession.getDefault (это) .activity (это) .adapter (это) .view (turbolinksView) .getWebView () .setDownloadListener (новый DownloadListener () {

        @Override
        public void onDownloadStart(String url, String userAgent,
                                    String contentDisposition, String mimeType,
                                    long contentLength) {

            String filename = URLUtil.guessFileName(url, contentDisposition, mimeType);
            DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));

            request.allowScanningByMediaScanner();
            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); //Notify client once download is completed!
            request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, filename);
            DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
            dm.enqueue(request);
            Toast.makeText(getApplicationContext(), "Download is gestart", //To notify the Client that the file is being downloaded
                    Toast.LENGTH_LONG).show();

        }
    });
}

Когда я нажимаю на ссылку, это вывод в журнале cat:

E: [] mConsumerName == NULL !!!!!! 2019-05-10 11: 00: 53.606? E: onTransact в коде: 103

2019-05-10 10: 45: 51,840? E: win = Window {104d4cf u0 com.app.name.here.MainActivity} destroySurfaces: appStopped = true win.mWindowRemovalAllowed = false win.mRemoveOnExit = false

1 Ответ

0 голосов
/ 13 мая 2019

По какой-то причине я не знаю, addDownloadListener никогда не активируется, поэтому он никогда не загружал изображение. Что так я обошел. В MainActivity у меня была такая функция: visitProposedToLocationWithAction, которая проверяет, остается ли новый запрос приложения в нашем веб-просмотре. Поэтому в этой функции я сделал оператор if else со следующими строками:

public void visitProposedToLocationWithAction(String location, String action) {
    if(location.contains(AMAZON_URL)) {

        String url = location;
        DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));



        request.allowScanningByMediaScanner();
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); //Notify client once download is completed!
        request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "Downloads");
        DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
        dm.enqueue(request);
        Toast.makeText(getApplicationContext(), "Download is gestart", //To notify the Client that the file is being downloaded
                Toast.LENGTH_LONG).show();

    } else {
        Intent intent = new Intent(this, MainActivity.class);
        intent.putExtra(INTENT_URL, location);
        this.startActivity(intent);
    }
}

Так что теперь, когда я делаю запрос о том, где хранятся изображения, он загружает их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...