当 PWA 启动或在 iOS Safari 中的应用程序之间切换时是不是可以获取事件

Posted

技术标签:

【中文标题】当 PWA 启动或在 iOS Safari 中的应用程序之间切换时是不是可以获取事件【英文标题】:Is it possible to get an event when PWA is starting or being switching between apps in iOS safari当 PWA 启动或在 iOS Safari 中的应用程序之间切换时是否可以获取事件 【发布时间】:2018-10-16 15:02:11 【问题描述】:

我要解决的问题是当全屏 PWA 被带到后台并再次启动时,例如切换到另一个应用程序然后切换回来或按主页按钮然后再次切换回应用程序,在这两种情况下,PWA 都会重新加载,之前的状态会丢失。

在谷歌上搜索了一下之后,最推荐的解决方案是将整个状态保存在本地存储中,然后在 safari 重新加载应用程序时将其加载回来。

通过使用该解决方案,当用户关闭应用程序并重新启动时,它将显示他退出时的先前状态,而不是显示我预期的初始状态。

这就是为什么我想知道我们是否可以判断应用是“启动”还是“从应用切换中恢复”。

我试过unloadvisibilitychangepagehide/pageshow,但似乎没有人能告诉我这些信息。

【问题讨论】:

你有没有找到检测这个的方法? 【参考方案1】:

我建议您在读取状态甚至解析 DOM 元素之间通过“加载”来解决您的问题。 在我使用的上一个 PWA 中,我使用 URL 和历史 API 本身来保存状态并使用“加载”来解决页面重新加载问题。

【讨论】:

您能多解释一下“加载”的实现方式吗?以及如何使用它来区分应用是“启动”还是“从应用切换中恢复”? 这个答案对我来说毫无意义。 OP 的问题是问如何检测 PWA 何时被带到前台

以上是关于当 PWA 启动或在 iOS Safari 中的应用程序之间切换时是不是可以获取事件的主要内容,如果未能解决你的问题,请参考以下文章

移动 Safari 中的 React PWA 图像上传会中断应用程序吗?

PWA 在重定向到其他 URL 时显示 Safari 控件

如何在 Safari iOS13+ 中从 PWA 下载图像

Material UI:底部导航与 iOS 上的 Progressive Web App (PWA) Safari 对齐

首次访问 Nuxt 2.15.3、Tailwind 和 Pwa 模块时不加载 Safari 本地字体

PWA:如何以编程方式触发:“添加到主屏幕”?在 iOS Safari 上