У меня возникла проблема, что после регистрации serviceWorker navigator.serviceWorker.controller всегда имеет значение null. Я никогда не обновляю силу и просто обновляю страницу. Я тестирую его с помощью Google Chrome 42.0.2311.152 m (32-разрядная версия).
var currentServiceWorker = null;
navigator.serviceWorker.register(SERVICE_WORKER_URL).then(function(serviceWorkerRegistration {
if (navigator.serviceWorker.controller) {
currentServiceWorker = navigator.serviceWorker.controller;
} else {
currentServiceWorker = serviceWorkerRegistration.active;
}
});
В соответствии с этим:
Свойство только для чтения контроллера интерфейса ServiceWorkerContainer возвращает объект ServiceWorker, если его состояние активировано (тот же объект возвращается ServiceWorkerRegistration.active). Это свойство возвращает значение null, если запрос является обновлением силы (Shift + refresh) или если нет активного рабочего. (Источник: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/controller)
navigator.serviceWorker.controller
должен возвращать тот же объект, что и serviceWorkerRegistration.active
. Но с .active
я получаю активный рабочий, с .controller
not.
Есть ли у вас какие-либо идеи для этой ситуации?
Спасибо, Andi