首页 > 解决方案 > 从 Android 8 卸载 PWA 失败

问题描述

我开发了一个 PWA - jcoonrod.github.io - 当我卸载它时 - 清除浏览器缓存 - 然后尝试转到该页面并重新安装它,我只看到旧版本 - 缓存似乎比 PWA 寿命更长。如何在 android 上完全删除缓存的 PWA 文件?

标签: androidprogressive-web-apps

解决方案


如果您想清除 service worker 存储,您可以通过您使用的浏览器的开发工具或代码:

// To unregister a service worker
navigator.serviceWorker.getRegistration()
   .then(function(registration) {
       if(registration){
          registration.unregister()
          .then(
               function(success) {
                 // if success = true, unregister was successful
                });
          }
    });

// To remove the SW storage
if ('caches' in window) {
    caches.keys()
      .then(function(keyList) {
          return Promise.all(keyList.map(function(key) {
              return caches.delete(key);
          }));
      })
}

caches.keys() 方法返回 CacheStorage 的键,这是一个接口,表示服务工作者可以访问的 Cache 对象的存储。

我写了一篇关于Service Workers和缓存策略以及如何清除存储数据的文章,你可以看看它。


推荐阅读