我认为这个问题非常简单,我已经在我的Android应用程序中实现了基础WebView,我需要用户点击链接并从网上下载pdf(如果愿意的话被重定向到浏览器应用程序。)
我的代码无效,当我点击链接时没有做任何事情:
@Override
public void loadContent() {
super.loadContent();
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
onLoadCompleted(false);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
Logger.i("Loading newsletter with url: " + mNewsletterUrl);
mWebView.loadUrl(mNewsletterUrl);
}
答案 0 :(得分:0)
使用DownloadManager从服务器下载文件。
还在清单文件中设置以下权限:
<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>
和
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
尝试以下代码:
mWebView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
Request downloadRequest = new Request(Uri.parse(url));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "download");
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(request);
}
});