Android WebView下载文件不执行任何操作

时间:2015-08-09 03:00:09

标签: android webview download

我目前正试图通过网页浏览下载文件,但似乎没有运气。我正在使用下载管理器,并逐步完成代码,它会在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中看到任何错误,所以我不确定如何调试它。

1 个答案:

答案 0 :(得分:1)

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