iOS PWA 独立:如何在新的 window 中强制打开
iOS PWA standalone: how to force opening in a new window
我在主屏幕上保存了一个 PWA,它以标准方式打开,没有搜索栏,也没有底部按钮(共享、标签等)。
所以每个 link 都会在 PWA 中打开,这是预期的。
我在显示 pdf 时遇到问题,因为它们通常在 Safari 中打开时带有“共享”按钮和所有底部栏,但在 PWA 中它们打开时没有底部栏也没有任何共享按钮。
所以我的想法是在新的 safari window,.
中打开 PDF link (http://www.mywebsite.com/download/pdf/12345
)
我尝试将 target="_blank"
放在 PDF link 上,但这并没有解决问题。
我还尝试通过使用 safari://http://www.mywebsite.com/download/pdf/12345
在 safari 中打开应用程序来强制执行 iOS 行为,但没有成功。
如何打开新的 Safari window 到 link?
你可以尝试使用window.open(url).
但是,记得放在有onclick事件属性的元素中。
例如,
<button class='btn' onclick='window.open("https://www.google.com", "_blank");'>Open Google search</button>
参考:window.open(url, '_blank'); not working on iMac/Safari
编辑
您可以在 manifest.json 中设置一个 scope
来自定义打开外部文件的位置 link。
您可以在 属性 范围内参考 https://developers.google.com/web/fundamentals/web-app-manifest。
好的,唯一可行的解决方案是告诉 iOS 您将进入另一个域。
仅当您位于同一域中时,PWA 才会保留在您的应用程序框架中。
要在域内以外部 window(或在 PWA 内但使用 Safari 标准控件)打开 link,您必须将其发送到 external/different 域。
所以 PWA 在 https://www.mywebsite.com/
上并且你想打开一个带有所有 Safari 控制按钮的 PDF,你只需创建一个 SUB 域并将 link 指向它,比如 https://media.mywebsite.com/download/pdf/12345
此时 PWA 认为您在不同的域中并进行正确的渲染!
我在主屏幕上保存了一个 PWA,它以标准方式打开,没有搜索栏,也没有底部按钮(共享、标签等)。
所以每个 link 都会在 PWA 中打开,这是预期的。
我在显示 pdf 时遇到问题,因为它们通常在 Safari 中打开时带有“共享”按钮和所有底部栏,但在 PWA 中它们打开时没有底部栏也没有任何共享按钮。
所以我的想法是在新的 safari window,.
中打开 PDF link (http://www.mywebsite.com/download/pdf/12345
)
我尝试将 target="_blank"
放在 PDF link 上,但这并没有解决问题。
我还尝试通过使用 safari://http://www.mywebsite.com/download/pdf/12345
在 safari 中打开应用程序来强制执行 iOS 行为,但没有成功。
如何打开新的 Safari window 到 link?
你可以尝试使用window.open(url).
但是,记得放在有onclick事件属性的元素中。
例如,
<button class='btn' onclick='window.open("https://www.google.com", "_blank");'>Open Google search</button>
参考:window.open(url, '_blank'); not working on iMac/Safari
编辑
您可以在 manifest.json 中设置一个 scope
来自定义打开外部文件的位置 link。
您可以在 属性 范围内参考 https://developers.google.com/web/fundamentals/web-app-manifest。
好的,唯一可行的解决方案是告诉 iOS 您将进入另一个域。
仅当您位于同一域中时,PWA 才会保留在您的应用程序框架中。 要在域内以外部 window(或在 PWA 内但使用 Safari 标准控件)打开 link,您必须将其发送到 external/different 域。
所以 PWA 在 https://www.mywebsite.com/
上并且你想打开一个带有所有 Safari 控制按钮的 PDF,你只需创建一个 SUB 域并将 link 指向它,比如 https://media.mywebsite.com/download/pdf/12345
此时 PWA 认为您在不同的域中并进行正确的渲染!