【问题标题】:Android WebView download file does nothingAndroid WebView 下载文件什么都不做
【发布时间】:2015-08-09 03:00:08
【问题描述】:

我目前正在尝试通过 webview 下载文件,但似乎没有运气。我正在使用下载管理器,并单步执行它在 webview 下载侦听器中接收所有正确信息的代码,但是在开始下载时,通知会出现片刻,然后消失。当我检查下载历史时,有一个 download.bin 文件。为什么会发生这种情况?代码如下。

webView = (WebView) findViewById(R.id.wv_webView);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            if (login) {
                webView.loadUrl("javascript:(function() { "
                        + "document.getElementsByName(\"username\")[0].value = \"" + computingid + "\";" +
                        "document.getElementsByName(\"password\")[0].value = \"" + password + "\"; " +
                        "document.forms[0].submit();"
                        + "})()");
                login = false;
            }
        }
    });
    webView.setDownloadListener(new DownloadListener() {
        public void onDownloadStart(String url, String userAgent,
                                    String contentDisposition, String mimetype,
                                    long contentLength) {
            Log.d("TEST", "Test");
            Uri source = Uri.parse(url);
            final DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
            DownloadManager.Request request = new DownloadManager.Request(source);
            request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"Test");
            request.allowScanningByMediaScanner();
            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE);
            manager.enqueue(request);
        }
    });

我在 logcat 中没有看到任何错误,所以我不确定如何调试它。

【问题讨论】:

    标签: android webview download


    【解决方案1】:

    Download.bin 是下载文件。您需要使用正确的文件名重命名它,或者在下载链接上使用 HttpURLConnection 并从标题中获取正确的文件名(内容处置)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-14
      • 2012-09-11
      • 1970-01-01
      • 2015-12-12
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 2013-09-24
      相关资源
      最近更新 更多