Итак, этот код удаляет всех работников сервиса.
Как мне удалить работника сервиса?
navigator.serviceWorker.getRegistrations().then(function(registrations) {
for(let registration of registrations) {
registration.unregister()
} })
Тогда у меня есть этот код, который успешно отменяет регистрацию сервисаРаботник только для текущей области.
function pwaUninstallServiceWorker() {
return self.registration.unregister()
.then(function(success) {
if (success) {
// Delete all Caches that belong to the PWA module.
caches.keys().then(function(names) {
for (let name of names) {
console.debug('cache name: ', name);
if (name.indexOf(CACHE_PREFIX) !== -1) {
console.debug('PWA: Deleting cache with name ', name);
caches.delete(name);
}
}
console.debug('Service Worker has unregistered itself and destroyed old caches');
});
}
else {
console.error('Service Worker could not unregister itself. It might be necessary to manually delete this Service Worker using browser devtools.');
}
})
.catch(function(error) {
console.error('PWA: Phone-home - ', error);
});
}
Можно ли каким-либо образом запустить код, чтобы он удалял / отменял регистрацию работника службы для текущей области только тогда, когда он закрывается за пределами сайта / области (все вкладки)связанных с сайтом), без необходимости полного перезапуска браузера?