加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular5服务工作者更新(SWUpdate)未在Firefox上检测到.在chrome

发布时间:2020-12-17 17:47:27 所属栏目:安全 来源:网络整理
导读:我正在使用Angular5和角度服务工作者. 我缓存了一些数据和一些资产,一切都按预期工作正常,甚至部署了代码. 现在,如果我更新一些代码并再次部署,则服务工作者不会更新. 所以,我已经通过Angular service worker链接和我实现了SwUpdate服务. 这是我的代码: 我
我正在使用Angular5和角度服务工作者.

我缓存了一些数据和一些资产,一切都按预期工作正常,甚至部署了代码.

现在,如果我更新一些代码并再次部署,则服务工作者不会更新.

所以,我已经通过Angular service worker链接和我实现了SwUpdate服务.

这是我的代码:

我创建了一个服务并在App Component中调用它

import { Injectable,NgZone } from '@angular/core';
import { interval } from 'rxjs/observable/interval';
import { SwUpdate } from '@angular/service-worker';
import { Observable } from 'rxjs/Rx';


@Injectable()
export class ServiceWorkerService {

  constructor(updates: SwUpdate,ngZone: NgZone) {
    console.log('Servicee worker update called');
    updates.available.subscribe(event => {
      console.log('current version is',event.current);
      console.log('available version is',event.available);
      updates.activateUpdate().then(() => document.location.reload());
    });
    updates.activated.subscribe(event => {
      console.log('old version was',event.previous);
      console.log('new version is',event.current);
    });
    ngZone.runOutsideAngular(() => {
      interval(6000).subscribe(() => {
        console.log('Inside Interval')
        ngZone.run(() => updates.checkForUpdate());
      });
    });
  }
}

上面的代码做了什么:

>每当部署新代码时,旧的服务工作者都会检测到它.
>然后它订阅updates.available事件.
>我们听那个事件,然后重新加载页面.

问题:

Now,the issue is,it is working perfectly on chrome. But not in
firefox
. In firefox,the code is not comming inside
updates.available.subscribe

解决方法

我有同样的问题,并能够通过在main.ts中注册服务工作者来解决它:

platformBrowserDynamic().bootstrapModule(AppModule).then(() => {
  if ('serviceWorker' in navigator && environment.production) {
    navigator.serviceWorker.register('/ngsw-worker.js');
  }
}).catch(err => console.log(err));

我还创建了一个Service worker服务,以便在有新的可用更新时通知用户:

enter image description here

如果您对我的服务工作者服务的外观感兴趣,您可以看到代码here.

您还可以访问yourdomain.com/ngsw/state来检查是否记录了任何错误

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读