如何在 Android 的 WebView 中显示 PDF?

Posted

技术标签:

【中文标题】如何在 Android 的 WebView 中显示 PDF?【英文标题】:How to display PDF inside WebView in Android? 【发布时间】:2019-02-08 02:55:09 【问题描述】:

我将 WebView 添加到 android。它工作正常。但我的网站包含 PDF 链接。当点击网页视图上的 PDF 链接时,它将通过默认网页浏览器打开,而不是在 WebView 中。我也想在 WebView 中显示 PDF。有没有办法限制它在同一个 WebView 中打开?

【问题讨论】:

Display the pdf file(stored in google drive) in webview by using google docs的可能重复 你会在这个link得到答案 Link should be open in same web view in Android的可能重复 @JaswantSingh 实际上我没有 pdf 链接。只有我有网页链接。网页链接在网页视图中工作得很好。但它包含 pdf 链接。那些没有在网页视图中打开。这就是问题所在.... How can I display a pdf document into a Webview?的可能重复 【参考方案1】:

试试这个:

您可以使用 Google Docs 打开您的 PDF 文档,然后使用 WebView 加载 Google Docs 的 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);
    

喜欢这个

【讨论】:

我没有pdf链接。只有我有网站链接...问题是当点击网站上的pdf链接时,它将通过默认浏览器打开...。 尝试下载 pdf,然后将其上传到 archieve.org 以使其成为直接链接...然后使用上面由@AndroidGeek 提供的代码...。【参考方案2】:

我找到了一个非常简单的解决方案(没有 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)
)

(科特林)

【讨论】:

以上是关于如何在 Android 的 WebView 中显示 PDF?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 上的 webView 中显示视频

如何在 Android 上的 webView 中显示 YouTube 视频

ProgressBar 没有出现在位于 Fragment 的 WebView 中,如何在 WebView android 中显示 ProgressBar?

android如何在像GMail这样的webview中显示PopupMenu

Android - 如何在 webview 中显示 .js 文件中的 pdf 内容

Android:如何在 webview 活动中显示 Youtube 频道?