如何在Android的WebView中显示PDF?

时间:2018-09-03 04:28:47

标签: java android pdf webview

我将WebView添加到Android。一切正常。但是我的网站包含PDF链接。当单击Web视图上的PDF链接时,它将通过默认的Web浏览器(而不是WebView)打开。我也想在WebView中显示PDF。有什么方法可以限制它在同一WebView中打开?

3 个答案:

答案 0 :(得分:1)

您可以使用Google Docs Viewer在Webview中获取pdf文件。

用法:

WebView webview = (WebView) findViewById(R.id.webview);  // your webview
webview.getSettings().setJavaScriptEnabled(true); 
String pdf = "http://www.adobe.com/devnet/acrobat/pdfs/pdf_open_parameters.pdf"; // pdf link
webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);

答案 1 :(得分:0)

尝试一下:

您可以使用Google文档打开PDF文档,然后使用WebView加载Google文档的URL。

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_main);

    WebView webView=new WebView(MainActivity.this);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setPluginState(PluginState.ON);
    webView.setWebViewClient(new Callback());
    String pdfURL = "http://dl.dropboxusercontent.com/u/37098169/Course%20Brochures/AND101.pdf";
    webView.loadUrl("http://docs.google.com/gview?embedded=true&url=" + pdfURL);

    setContentView(webView);
}

private class Callback extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(
            WebView view, String url) {
        return(false);
    }
}

像这样

enter image description here

答案 2 :(得分:0)

我找到了一个非常简单的解决方案(没有Google Drive Viewer等)。它将在预览窗口中打开pdf文档,用户可以在其中查看和保存/共享该文档:

webView.setDownloadListener(DownloadListener { url, userAgent, contentDisposition, mimetype, contentLength ->
     val i = Intent(Intent.ACTION_QUICK_VIEW)
     i.data = Uri.parse(url)
     startActivity(i)
})

(科特琳)