Procházet zdrojové kódy

🤔 better sw unregister

陈帅 před 6 roky
rodič
revize
d70ac0952b
1 změnil soubory, kde provedl 20 přidání a 8 odebrání
  1. 20 8
      src/global.tsx

+ 20 - 8
src/global.tsx

@@ -59,13 +59,25 @@ if (pwa) {
     });
   });
 } else if ('serviceWorker' in navigator) {
-  // eslint-disable-next-line compat/compat
-  navigator.serviceWorker.ready
-    .then(registration => {
-      registration.unregister();
-      return true;
-    })
-    .catch(() => {
-      console.log('serviceWorker unregister error');
+  // unregister service worker
+  const { serviceWorker } = navigator;
+  if (serviceWorker.getRegistrations) {
+    serviceWorker.getRegistrations().then(sws => {
+      sws.forEach(sw => {
+        sw.unregister();
+      });
+    });
+  }
+  serviceWorker.getRegistration().then(sw => {
+    if (sw) sw.unregister();
+  });
+
+  // remove all caches
+  if (window.caches && window.caches.keys) {
+    caches.keys().then(keys => {
+      keys.forEach(key => {
+        caches.delete(key);
+      });
     });
+  }
 }