2 回答

TA贡献1798条经验 获得超3个赞
您可以使用visibilitychange事件侦听器来检测以前处于后台的 Web 应用程序现在何时处于前台:
document.addEventListener('visibilitychange', function() {
if (document.visibilityState === 'visible') {
// Your code here...
}
});
这篇博文中有更多关于页面生命周期 API 的信息,但您应该注意,并非 API 中的所有可用状态都在 Safari 中公开。该帖子列出了在编写可跨多个浏览器运行的代码时需要注意的一些注意事项。

TA贡献1806条经验 获得超8个赞
您可以使用GoogleChromeLabs/page-lifecycle库作为订阅页面生命周期事件的跨浏览器方法。
import lifecycle from 'page-lifecycle'
lifecycle.addEventListener('statechange', ({ oldState, newState }) => {
console.log(`${oldState} -> ${newState}`)
})
在我的测试中,iOS PWA 在触发事件方面受到限制:
切换:主动→被动,被动→隐藏
切换到:隐藏→被动,被动→主动
激活应用切换器并返回:无变化
我没有找到任何方法来检测应用程序被强制关闭并重新打开。
添加回答
举报