Webview问题,pdf链接无法打开,请协助

时间:2019-01-13 07:56:03

标签: android-studio

我正在尝试使用wevbview从可选列表中打开pdf`,但是当我单击应用程序时没有任何反应,我给应用程序提供了Internet权限,也可以读写(不需要)到外部存储。谁能给我一个提示?

我已经测试了可与之一起使用的google docs版本,但是那里有登录和打印按钮,这些按钮在Webview中不起作用,并且希望用户保存他们选择查看的pdf

public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.endsWith(".pdf")){
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(Uri.parse(url), "application/pdf");
            try{
                view.getContext().startActivity(intent);
            } catch (ActivityNotFoundException e) {
                //user does not have a pdf viewer installed
            }
        } else {
            webview.loadUrl(url);
        }
        return true;

1 个答案:

答案 0 :(得分:0)

好,所以我更改了代码,因此应该只下载文件,而不是在Webview中查看。我仍然不知道为什么上面的代码没有在设备上调用默认的pdf查看器。我已经在设备上安装了5个以上的pdf查看器,并使其中至少3个默认查看器可以测试-没用。因此,最后,我只是更改了shouldOverrideUrlLoading以将文件下载到ext存储中,然后,用户可以通过他想要/已经安装的任何应用打开它。解决方案:

 public boolean shouldOverrideUrlLoading (WebView view, String url) {
        if (url.endsWith(".pdf")) {
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));

            return true;
        }
        return false;
    }

还添加了用于访问默认下载管理器和外部存储的清单的权限

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

这为我修复了它。