在webview意图中查看Android应用程序中的PDF(来自URL)

时间:2016-10-13 13:20:46

标签: java android pdf webview uri

我正在尝试从我的设备/模拟器远程查看PDF文件。我一直在做大量的研究,并一直在寻找如何做到这一点的stackoverflow,而无需下载PDF然后以这种方式查看文件。

这是尝试执行此操作的相关代码段:

if (url.contains("CreateQuoteDocument")) {
    webview.getSettings().setJavaScriptEnabled(true);
    try {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.parse(url),"application/pdf");
        startActivity(intent);
    } catch (ActivityNotFoundException e) {
        Log.e("something went wrong", e.getMessage());
    }
}

我收到以下异常:

E/something went wrong: No Activity found to handle Intent { act=android.intent.action.VIEW ...

所以说这话,我有两个问题,

  1. 为什么这不起作用?

  2. 还有另一种方法吗? (虽然不使用谷歌文档)

  3. 修改

    使用http://www

    正确格式化了网址

2 个答案:

答案 0 :(得分:0)

试试这个:

String myPdfUrl = "http://example.com/awesome.pdf";
String url = "http://docs.google.com/gview?embedded=true&url=" + myPdfUrl;
Log.i(TAG, "Opening PDF: " + url);
webView.getSettings().setJavaScriptEnabled(true); 
webView.loadUrl(url);

答案 1 :(得分:0)

  

为什么这不起作用?

您尚未安装包含支持Intent结构的活动的应用(例如application/pdf,因为url正在使用的任何方案。)

  

还有另一种方法吗?

您可以安装包含支持Intent结构的活动的应用。当然,并非所有用户都会有这样的应用程序,但也许您只是打算亲自使用您的代码,在这种情况下除了您之外没有其他用户。