1
페이지가로드 될 때마다 서비스 작업자에게 메시지를 보내려고합니다.Service Worker 컨트롤러 교환이 실행되지 않음
처음으로 페이지를로드하면 register()가 호출 된 다음 navigator.serviceWorker에서 "controllerchange"이벤트를 수신하지만이 이벤트는 발생하지 않습니다.
서비스 작업자를 postMessaging 할 수있는 시점을 어떻게 알 수 있습니까? 나는 서비스 노동자를 postMessaging 시작할 때
navigator.serviceWorker.register(swURL).then(function(){
var sw;
if (navigator.serviceWorker.controller) {
sw = navigator.serviceWorker.controller;
sw.postMessage('ping');
return;
}
function onchange(){
sw = navigator.serviceWorker.controller;
sw.postMessage('ping');
navigator.serviceWorker.removeEventListener('controllerchange', onchange);
}
navigator.serviceWorker.addEventListener('controllerchange', onchange);
}).catch(function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});