javascript - 当 PWA 启动或在 iOS safari 中的应用程序之间切换时是否有可能获得事件

标签 javascript ios safari progressive-web-apps

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

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

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

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

我尝试了unloadvisibilitychangepagehide/pageshow,但似乎没有一个能告诉我这个信息。

最佳答案

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

关于javascript - 当 PWA 启动或在 iOS safari 中的应用程序之间切换时是否有可能获得事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52838501/

相关文章:

html - Safari 不会加载 html5 音频标签

iphone - AVLayerVideoGravityResizeAspectFill 在哪里裁剪

javascript - 为什么 `componentWillReceiveProps` 在 React 的 "Lifting state up"示例中不是必需的?

翻译工具的javascript回调

javascript - 跳过函数关键字会引发语法错误

iphone - 在FBConnect ios中通过graph api获取page_access_token

ios - 在私有(private) cocoapod 中包含本地化的 xib 文件

HTML5 拖放 - 在 Safari 中检测文件夹(FileList、File)

javascript - 在 Safari 5.1.2 中传递 Element.ALLOW_KEYBOARD_INPUT 时 webkitRequestFullScreen 失败

javascript - 为什么 Marionette ItemView.open 在之前的渲染步骤之后调用 $el.empty() ?