从URL打开PDF需要哪种意图?

18

我正在尝试创建一个意图,以便在PDF阅读器中打开网络上的PDF文件(URL)。但似乎只有本地文件才能起作用。

我知道这将取决于安装的应用程序是否能够处理URL,但由于我安装了几个PDF阅读器(其中一些声称可以阅读Web上的PDF),但都没有响应,我想看看我的意图是否有问题。

以下是我目前正在使用的代码:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(url), "application/pdf");
感谢。

看一下这篇帖子。 - Abhinav Manchanda
2个回答

28

使用 Google Docs Viewer 构建 PDF 的 URL。这样做可以让 PDF 在显示之前不必先下载整个文件,因此加载速度更快。

private static final String googleDocsUrl = "http://docs.google.com/viewer?url=";

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(googleDocsUrl + url), "text/html");
我们最近做了类似的事情,但我们使用了自己的活动和嵌入式Webview来显示PDF,而不是转到浏览器。

我需要传递什么给"url"?我必须上传我的文档吗?它不能在本地(没有互联网)工作吗? - emeraldhieu
1
翡翠,没有互联网连接就无法工作。此外,您的资源必须在互联网上某个地方。 - pawel.urban
无法工作。我收到一条消息,上面写着:抱歉。 没有可用的预览。 - user2260040
@user2260040,我猜您是让谷歌加载您网络私有的文档。这是不可能发生的。 - Synesso
这会加载一个未经过移动优化的网页。我们能设置URL参数来解决这个问题吗? - Maarten

15
你可以在Webview中简单地加载以下URL。
webView.loadUrl("https://drive.google.com/viewerng/viewer?embedded=true&url=" + url);

谷歌文档会负责加载PDF的URL。


6
那正是我去年提出的建议。 - matheeeny
8
并不完全一样——前缀不同,并且它向我们展示了如何通过 WebView 载入它而非通过 Intent。这并不完全是 littleFluffyKitty 所问的,但也不值得被踩,如果可行的话,可以对其他访问该问题的人有所帮助。不是吗? - SilithCrowe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接