Files
chinese-family-tree-2/lib/register-sw.ts
T
freedakgmail c033e46782 0.0.0.4
2025-11-22 23:49:24 +08:00

47 lines
1.4 KiB
TypeScript

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)
})
}