如何在新活动中正确打开 pdf?
Posted
技术标签:
【中文标题】如何在新活动中正确打开 pdf?【英文标题】:How to properly open a pdf in a new activity? 【发布时间】:2019-02-15 06:14:27 【问题描述】:我想在另一个活动中查看/打开 PDF 而不触发浏览器或下载 pdf 本身。
目前我正在使用此代码:
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);
但是这似乎并不可靠。有时我的 pdf 已加载,有时则没有。有没有更好的方法来做到这一点?
我正在寻找一个可以打开远程托管 pdf 的库,我得到的最接近的是 https://github.com/voghDev/PdfViewPager,但它仅支持 API 21,而我也需要支持 API 19。此外,这个库似乎只是下载 PDF 并打开它,而不是简单地在 web 视图中显示它。
有什么想法吗?
【问题讨论】:
“有时不是。”这是什么意思? 有时 pdf 没有加载,我看到的只是一个带有空 webview 的空白页面。我测试了 PDF 链接,它不是问题。 您是否尝试过以 URL 格式对 PDF URL 进行编码?URLEncoder.encode(myPdfUrl, "UTF-8")
是的,这就是我目前使用它的方式。
你不在你的例子中。
【参考方案1】:
我想在另一个活动中查看/打开 PDF 而不触发浏览器或下载 pdf 本身
这是不可能的,除非您有一个可以进行 PDF 呈现的网站。
然而这似乎并不可靠
我不相信它是为那样使用而设计的。
有没有更好的方法来做到这一点?
构建您自己的网站,对某些内容(例如图像)进行 PDF 渲染,然后在您的 WebView
中显示该网站。
下载 PDF 会简单得多。
【讨论】:
【参考方案2】:这个图书馆怎么样?
https://github.com/barteksc/androidPdfViewer
用于显示使用 PdfiumAndroid 呈现的 PDF 的 Android 视图
【讨论】:
在 Android 中下载文件没什么大不了的。您想节省下载大型 pdf 以进行远程渲染的时间和流量吗?换句话说,您是否需要像 Google Docs 为您做的一样,但唯一的问题是它的工作不可靠?【参考方案3】:我开发了一个基于 Webview 的组件,用于在应用程序中显示 PDF 文件。
You can find it here。希望对你有帮助
【讨论】:
不,你必须下载它 我想避免下载:/ 在谷歌文档中显示 pdf,然后在 webview 中显示,但不是一直有效:/以上是关于如何在新活动中正确打开 pdf?的主要内容,如果未能解决你的问题,请参考以下文章