iOS PWA独立:如何在新窗口中强制打开



我在主屏幕上保存了一个PWA,这是标准打开的,没有搜索栏,也没有底部按钮(共享,选项卡等(。

因此,每个链接都在PWA内部打开,这是意料之中的。

显示pdf时遇到问题,因为它们通常在Safari中打开,带有"共享"按钮和所有底部栏,但是在PWA中,它们在没有底部栏和没有任何共享按钮的情况下打开。

所以我的想法是在新的野生动物园窗口中打开PDF链接(http://www.mywebsite.com/download/pdf/12345(。

我尝试将target="_blank"放在PDF链接上,但这并没有解决问题。

我还尝试通过在safari://http://www.mywebsite.com/download/pdf/12345safari 中打开应用程序来强制 iOS 行为,但没有运气。

如何打开指向链接的新 Safari 窗口?

好的,唯一有效的解决方案是告诉iOS您要进入另一个域。

仅当您位于同一域中时,PWA 才会保留在您的应用框架中。 要在外部窗口中打开域内的链接(或在PWA内部,但使用Safari标准控件(,您必须将其发送到外部/其他域。

所以PWA是https://www.mywebsite.com/的,你想打开一个包含所有Safari控制按钮的PDF,你只需创建一个子域并将链接指向它,就像https://media.mywebsite.com/download/pdf/12345此时PWA认为你在不同的域上并做正确的渲染! 🎉

你可以尝试使用 window.open(url(。

但是,请记住将其放在具有 onclick 事件属性的元素中。

例如

<button class='btn' onclick='window.open("https://www.google.com", "_blank");'>Open Google search</button>

参考:window.open(url, '_blank'(;不适用于 iMac/Safari

编辑

您可以在 manifest.json 中设置scope,以自定义打开外部链接的位置。

可以在属性范围上引用 https://developers.google.com/web/fundamentals/web-app-manifest。

最新更新