首页 > 解决方案 > 服务工作者获取新版本时显示加载屏幕

问题描述

我正在使用服务工作者来缓存/更新我们的应用程序,但我们想“强制”用户始终拥有应用程序的最新版本。这样做的原因是我们不想收到以前版本的电话。

当我们发现用户正在使用旧版本的应用程序时,我们已经阻止了我们的 API 调用。

但是现在我们想挂接到 Angular Service Worker 以在他获取新版本时显示加载屏幕。直到现在我还没有找到一种方法来做到这一点。我正在尝试使用以下代码:

if ('serviceWorker' in navigator && environment.production) {
  navigator.serviceWorker.register('/ngsw-worker.js').then(registred => {
    console.log('-- registred worker', registred);

    registred.addEventListener('fetch', event => {
      console.log('-- fetching', event);
    });

    registred.addEventListener('install', event => {
      console.log('-- installing', event);
    });
    registred.addEventListener('updatefound', event => {
      console.log('-- found a update?', event);
    });
  });
}

我似乎无法收听 fetch 事件(我认为这是我想要的事件)

还是有其他方法可以查看是否有新版本?或者是否有更好的图书馆/方式来使用服务工作者,以便我获得更多控制权?

希望有人可以帮助我!

标签: angularservice-workerangular-service-worker

解决方案


推荐阅读