小编Raj*_*vad的帖子

在 angular 6 网站中删除 PWA 后,如何从客户端浏览器中删除 PWA Service Worker 及其缓存

我已将 PWA 功能和 service worker 添加到我的 angular 网站。发布到实时服务器后,许多用户开始遇到问题,例如:“无法访问此站点”,但是当用户单击 CTRL+ F5 时,它可以正常工作。

为了立即解决,我已经从我的版本中删除了 PWA 和 service worker。尽管如此,许多用户都面临着同样的问题或来自 Service Worker 的“未找到索引页面”错误。

如何从最终用户的浏览器中删除或取消注册旧的 Service Worker?

我尝试使用此代码删除服务工作者缓存:

if ('caches' in window) {
    caches.keys()
      .then(function(keyList) {
          return Promise.all(keyList.map(function(key) {
              return caches.delete(key);
          }));
      })
}
Run Code Online (Sandbox Code Playgroud)

为了删除服务工作者,我添加了以下内容:

if(window.navigator && navigator.serviceWorker) {
  navigator.serviceWorker.getRegistrations()
  .then(function(registrations) {
    for(let registration of registrations) {
      registration.unregister();
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

service-worker progressive-web-apps angular

5
推荐指数
1
解决办法
8879
查看次数