有很多关于阻止独立网络应用中的链接在移动版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打开。
答案 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黑客攻击不够好,你可以试试这个。