我有一个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()
}
}, [])
}