我要解决的问题是当全屏 PWA 被带到后台并再次出现时,例如切换到另一个应用程序然后切换回来或按下主页按钮然后再次切换回应用程序,在这两种情况下 PWA 都将重新加载,之前的状态将丢失。
在谷歌搜索了一下之后,大多数建议的解决方案是将整个状态保存在本地存储中,然后在应用程序被 safari 重新加载时将其加载回来。
通过使用该解决方案,当用户关闭应用程序并再次启动时,它将显示他退出时的先前状态,而不是显示我期望的初始状态。
这就是为什么我想知道我们是否可以判断应用程序是“正在启动”还是“正在从应用程序切换中恢复”。
我尝试了unload
、visibilitychange
、pagehide
/pageshow
,但似乎没有一个能告诉我这个信息。
最佳答案
我建议您在读取状态和解析 DOM 元素之间通过“加载”来解决您的问题。 在我使用的最后一个 PWA 中,我使用 URL 和历史 API 本身来保存状态,并使用“加载”来解决页面重新加载问题。
关于javascript - 当 PWA 启动或在 iOS safari 中的应用程序之间切换时是否有可能获得事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52838501/