单击WebView上的链接不起作用

时间:2016-02-09 00:30:31

标签: android hyperlink webview click android-webview

我认为这个问题非常简单,我已经在我的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);
}

1 个答案:

答案 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);
    }
});