2024-11-21 01:03:01 +02:00
|
|
|
export async function registerServiceWorker() {
|
|
|
|
|
if (!('serviceWorker' in navigator)) {
|
|
|
|
|
throw new Error('Ваш браузер не поддерживает Service Worker.')
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-05 11:04:04 +02:00
|
|
|
function requestDebugVersion() {
|
|
|
|
|
navigator.serviceWorker?.controller?.postMessage({
|
|
|
|
|
type: 'requestDebugVersion',
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
navigator.serviceWorker.addEventListener('controllerchange', () => {
|
|
|
|
|
console.log('Service Worker controller has changed.')
|
|
|
|
|
requestDebugVersion()
|
|
|
|
|
})
|
|
|
|
|
|
2024-11-21 01:03:01 +02:00
|
|
|
try {
|
|
|
|
|
const registration = await navigator.serviceWorker.register('/service-worker.js')
|
|
|
|
|
console.log('Service Worker зарегистрирован:', registration)
|
2024-12-05 11:04:04 +02:00
|
|
|
|
|
|
|
|
requestDebugVersion()
|
|
|
|
|
|
|
|
|
|
window.addEventListener(
|
|
|
|
|
'focus',
|
|
|
|
|
() => {
|
|
|
|
|
navigator.serviceWorker?.controller?.postMessage({
|
|
|
|
|
type: 'focused',
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
{},
|
|
|
|
|
)
|
|
|
|
|
|
2024-11-21 01:03:01 +02:00
|
|
|
return registration
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('Ошибка регистрации Service Worker:', error)
|
|
|
|
|
throw error
|
|
|
|
|
}
|
|
|
|
|
}
|