Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 单击Web视图上的链接不工作_Android_Hyperlink_Webview_Click_Android Webview - Fatal编程技术网

Android 单击Web视图上的链接不工作

Android 单击Web视图上的链接不工作,android,hyperlink,webview,click,android-webview,Android,Hyperlink,Webview,Click,Android Webview,我认为这个问题很简单,我已经在我的Android应用程序中实现了一个基本的WebView,我需要用户点击一个链接并从web下载pdf(不管是否会重定向到浏览器应用程序) 我的代码不起作用,当我单击链接时,我没有做任何事情: @Override public void loadContent() { super.loadContent(); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSet

我认为这个问题很简单,我已经在我的Android应用程序中实现了一个基本的WebView,我需要用户点击一个链接并从web下载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);
}

使用DownloadManager从服务器下载文件

还可以在清单文件中设置以下权限:

<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>

谢谢回复,但我不想为用户下载文件,我希望用户访问页面,然后单击链接并下载文件。。(以前发生过,但我认为现在的问题是webViewClient,但我必须将其用于onLoadComplete)
<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);
    }
});