0.0.0.4
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
export function registerServiceWorker() {
|
||||
if (typeof window === "undefined" || !("serviceWorker" in navigator)) {
|
||||
console.log("Service Worker 不被支持")
|
||||
return
|
||||
}
|
||||
|
||||
window.addEventListener("load", () => {
|
||||
navigator.serviceWorker
|
||||
.register("/sw.js")
|
||||
.then((registration) => {
|
||||
console.log("Service Worker 注册成功:", registration.scope)
|
||||
|
||||
// 检查更新
|
||||
registration.addEventListener("updatefound", () => {
|
||||
const newWorker = registration.installing
|
||||
if (newWorker) {
|
||||
newWorker.addEventListener("statechange", () => {
|
||||
if (newWorker.state === "installed" && navigator.serviceWorker.controller) {
|
||||
// 新的 Service Worker 已安装,提示用户刷新
|
||||
if (confirm("发现新版本,是否立即更新?")) {
|
||||
window.location.reload()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log("Service Worker 注册失败:", error)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export function unregisterServiceWorker() {
|
||||
if (typeof window === "undefined" || !("serviceWorker" in navigator)) {
|
||||
return
|
||||
}
|
||||
|
||||
navigator.serviceWorker.ready
|
||||
.then((registration) => {
|
||||
registration.unregister()
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("Service Worker 注销失败:", error)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user