在我的反应项目中导入了visibility.js包,如果用户从后台打开 Web 视图并且超过 5 分钟,我将使用它来重新渲染页面,在我的一个钩子内我有简单的实现:
useEffect(() => {
let initialTime = 0
const limit = 5 * 60 // 5 min.
const listener = Visibility.change(function (e, state) {
if (Visibility.hidden()) {
initialTime = (new Date().getTime()) / 1000
} else {
const currentTime = (new Date().getTime()) / 1000
updatePage()
}
}
})
return () => {
Visibility.unbind(listener)
}
}, [])
如果您在 10 分钟、1 小时左右的时间内打开,这是可行的,但注意到它在长时间将网络留在后台后不起作用,比如一夜之间......我正在 iPhone 12,V14.6 上进行测试。做了一些研究,但找不到关于这个特殊案例的任何想法,也许有人有同样的问题,可以分享你的经验,谢谢。