微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Angular Service Worker - 立即检查更新

如何解决Angular Service Worker - 立即检查更新

我在我们的 Angular 项目中设置了一个 Service Worker,其中一部分我们设置了 serviceWorker 以在 Angular 项目发生变化时检查更新。问题是我们遇到的问题是,如果有更新,则在加载应用程序时,服务需要大约 2-3 分钟才能检测到更新。我们如何更改此设置,以便在加载应用程序时立即检查更新?

目前我们的代码如下。我们有一个名为 update.service 的服务,它有一个构造函数来检查服务工作者是否已启用,并具有初始化检查更新的功能

constructor(private updates: SwUpdate) {     
    console.log('UpdateService','constructor()','Check Service Worker Active',null);
    if (!this.updates.isEnabled) {
      console.log('UpdateService','Service Worker disabled',null);
    } else {
      console.log('UpdateService','Service Worker Enabled',null);
    }
           
  }
  /*
  ** name: Init Check Update
  ** desc: Update check on init app - DOESN"T WORK
  */
  initCheckForUpdate(): void {
    // check update on init in prod mode only
    if (this.updates.isEnabled) {
      this.updates.available.subscribe(event => {
        //console.log('Event',event);
        console.log('Current version is',event.current);
        console.log('Available version is',event.available);  
        this.updates.activateUpdate().then(() => {
          alert('There is a new version of the app. Press OK to autoupdate.');
          document.location.reload();
        });
      });
    }
  }

然后在加载的第一个页面中我们有 ngOnInit()

this.updateService.initCheckForUpdate();

感谢您的帮助,似乎有很多人在各种论坛上问过这个问题,但我还没有看到答案。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。