Работник службы не работает для Chrome

Service worker регистрируется, но navigator.serviceWorker.readyпоказывает null.

navigator.serviceWorker.register('sw.js', {scope: './'}).then(function(registration) {
  // Registration was successful
  console.log('ServiceWorker registration successful with scope: ',    registration.scope);
    //Check subscription state
    checkSubscription();
    });
})
function checkSubscription() {
console.log('fun checkSubscription');
navigator.serviceWorker.ready.then(function(serviceWorkerRegistration){
serviceWorkerRegistration.pushManager.getSubscription().then(
  function(pushSubscription) {
    if(!!pushSubscription) {
      console.log(pushSubscription);
      pushStatus = true;

    }
    else {
      pushStatus = false;
     }
  }.bind(this)).catch(function(e) {
    console.error('Error getting subscription', e);
  });
});
}

Выше мой код. Это прекрасно работает в браузере Firefox.

1 ответ

  1. если вы запускаете service worker на Google Chrome, вам нужно запустить свой веб-сайт на сервере, таком как apache (xampp) / nodejs (http-сервер).