如何在 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 中显示 YouTube 视频
ProgressBar 没有出现在位于 Fragment 的 WebView 中,如何在 WebView android 中显示 ProgressBar?
android如何在像GMail这样的webview中显示PopupMenu