iOS 11 - 独立的Web应用程序链接打开默认是否反转? (在Web应用程序中处理PDF显示。)

时间:2018-06-06 13:32:29

标签: javascript ios progressive-web-apps iphone-standalone-web-app

有很多关于阻止独立网络应用中的链接在移动版Safari中打开的流量,但引用的iOS版本要早得多(7-9?)。在iOS 11中,我遇到了相反的问题:在我的独立Web应用程序中,我有指向需要显示的PDF文件的链接。当我点击它们时,无论我给出了什么选项,它们都会在Web应用程序浏览器中打开,而不是在Safari内部打开。由于独立模式,结果是Web应用程序中的死胡同,需要重新启动应用程序。 (Android似乎做了正确的事情并传递给pdf查看应用程序。)

单击处理程序(javascript / bootstrap / jquery):

function openDocument(docURL) {
    window.open(docURL,'_blank');
    return false;
}

或者,可以为新页面打开Web应用程序内的导航,以便我可以避免死路一条吗? (我认为没有,因为我正在阅读;我已经尝试了一些选项来开窗。打开无济于事。)或者是否有可能以某种方式组合一个(多页)pdf查看器和一个用于解雇的UI元素?建议欢迎。

编辑:总结下面的讨论,iOS在独立的Web应用程序中处理内部与外部链接的方式不同。通过在服务器端重新映射使链接看起来是外部的,允许链接强制Safari打开。

1 个答案:

答案 0 :(得分:2)

在页面中添加iFrame或DIV,然后在该组件中加载PDF。在iFrame上方有一个后退按钮,以避免死胡同。

<iframe src="https://example.com/mypdf.pdf"
   width="match your parent element" height="match your parent element" >

您可以在此处看到另一个选项embed PDF。

更新:如果您打开另一个域或子域的PDF表单,它将在单独的窗口中打开,即使在iOS中也是如此。假设您的PWA网址为https://www.example.com/myapp,如果您当前正在访问来自&#34; https://www.example.com/myapp/pdf/mypdf.pdf&#34;的pdf,请为此网址设置一个别名,例如&#34; https://www.pdf.example.com/myapp/mypdf.pdf&# 34 ;.

如果域或子域在PWA中发生更改,它将被视为外部链接,并且将始终在新窗口中打开,而不是在引导死胡同的应用程序内部打开。如果CSS黑客攻击不够好,你可以试试这个。