在 Android 移动网络应用程序中嵌入 pdf 时如何避免打开按钮?

Posted

技术标签:

【中文标题】在 Android 移动网络应用程序中嵌入 pdf 时如何避免打开按钮?【英文标题】:How to avoid Open button when embedding a pdf in an Android mobile web app? 【发布时间】:2020-04-21 10:07:26 【问题描述】:

我正在构建一个网络应用程序,供一家使用三星平板电脑(android 9 和 Chrome 最新版本)的公司内部使用。我有一个页面,其中包含指向 PDF 文档的链接列表,问题是当我单击其中任何一个时,它们不会自动打开,而是显示一个打开按钮,要求打开文档。如果我单击“打开”,文档将使用默认查看器(Google PDF 查看器)按预期打开。当我返回时,“打开”按钮仍然存在。如果文档已经下载,浏览器会询问是否再次下载。这些图像显示了这种情况:

http://www.maresme.net/***/chrome_android_pdf/open_button.jpg http://www.maresme.net/***/chrome_android_pdf/allow_auto_downloads.jpg

是否可以绕过此步骤并在不显示此按钮的情况下自动打开文档?我想避免使用此按钮,并且当用户从阅读文档返回时,他们会再次找到指向其他 PDF 的链接列表。

我尝试了不同的嵌入 PDF 的方法(嵌入、对象和 iframe),但均未成功。另外,我考虑过使用带有 canvas 标签的 pdf.js,但我的 webapp 也必须离线工作,而且这个解决方案占用了太多资源。

在网上搜索时,我在 Chrome 中的“隐私和安全”下找到了有关允许自动打开 PDF 的选项的参考资料,但此选项未出现在我正在使用的平板电脑中。是无法绕过的安全限制吗?

我真的会感谢任何帮助,这让我发疯了。

【问题讨论】:

嘿@Llorenc,如果您可以包含一些显示您正在做什么的代码,那将非常有帮助。还包括您用于创建此网页的技术堆栈。 嗨。这是一个香草 javascript webapp,我只使用 jquery 来帮助我处理选择器和其他位。 html 链接有一个提供嵌入标签的 onclick 处理程序。它工作正常,除了这个打开按钮我无法摆脱。 【参考方案1】:

我要自己回答:Chrome 手机的问题是它不支持扩展,因此没有允许在浏览器中查看此类文件的 PDF 插件。当您打算打开 PDF 文件时,浏览器必须在外部应用程序中打开它,成为默认查看器(如果已定义)或任何其他功能(将显示列表)。这就是它要求许可的原因,我认为这是一种安全措施,不知道如何/是否可以绕过它。

使用 pdf.js(和其他商业工具包),您可以在浏览器中使用 JavaScript 解析 PDF 文件,因此不需要插件。但是,您必须在 PWA 中包含所有这些代码以供离线使用(并且有一些)。另一种对我有用的方法是使用支持扩展的 Kiwi 浏览器(我有一个封闭的用户组,我可以强制这样做),然后使用插件,例如 pdf.js 的插件版本。

希望这对某人有所帮助。

【讨论】:

以上是关于在 Android 移动网络应用程序中嵌入 pdf 时如何避免打开按钮?的主要内容,如果未能解决你的问题,请参考以下文章

在移动浏览器中嵌入 PDF

移动网络应用程序的推送通知工具[关闭]

移动网络应用程序中删除地址栏的跨平台方法

渲染/显示和播放嵌入 pdf、Android 的 youtube 视频

在 Android 浏览器上嵌入谷歌文档查看器 iframe

在 Android 上从 pdf 生成缩略图