【发布时间】:2021-12-02 16:10:48
【问题描述】:
我有一个 Next.js 应用程序,它使用 next-pwa 库将应用程序设置为服务人员。部署新版本后,我想显示一个可用的快餐栏。
目前,当我重新加载应用程序时它确实会显示,但它似乎毫无用处,因为代码库在重新加载后已经是最新的。
我想知道是否有可能在用户将选项卡打开一段时间后显示该小吃栏,部署了一个新版本,然后他们回来查看该小吃栏?
我的代码目前看起来像这样:
const useServiceWorker = () => {
const { showSnackbar } = useSnackbars()
useEffect(() => {
if (window !== 'undefined' && 'serviceWorker' in navigator && window.workbox !== undefined) {
const wb = window.workbox
wb.addEventListener('waiting', () => {
showSnackbar('A newer version of the app is available!', {
onClick: () => {
wb.addEventListener('controlling', () => window.location.reload())
wb.messageSkipWaiting()
},
onClose: () => {
// do smth else
},
})
})
wb.register()
}
}, [])
}
【问题讨论】:
标签: reactjs next.js progressive-web-apps service-worker next-pwa