export function registerServiceWorker() { if (typeof window === "undefined" || !("serviceWorker" in navigator)) { // Service Worker 不被支持,静默跳过 return } // 只在 HTTPS 或 localhost 环境下注册 Service Worker const isSecureContext = window.location.protocol === "https:" || window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1" if (!isSecureContext) { // 非安全环境,静默跳过 Service Worker 注册 return } const register = () => { navigator.serviceWorker .register("/sw.js") .then((registration) => { // 检查更新 registration.addEventListener("updatefound", () => { const newWorker = registration.installing if (newWorker) { newWorker.addEventListener("statechange", () => { if (newWorker.state === "installed" && navigator.serviceWorker.controller) { // 新的 Service Worker 已安装 } }) } }) }) .catch((error) => { console.error("Service Worker 注册失败:", error) }) } // 如果页面已经加载完成,直接注册;否则等待 load 事件 if (document.readyState === "complete") { register() } else { window.addEventListener("load", register) } } 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) }) }