gpt4 book ai didi

Angular5 Service Worker 更新 (SWUpdate) 未在 Firefox 上检测到。在 Chrome 上工作

转载 作者:太空狗 更新时间:2023-10-29 17:18:46 26 4
gpt4 key购买 nike

我正在使用 Angular5angular service worker

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

现在,如果我更新一些代码并再次部署,service worker 不会更新。

所以,我经历了Angular service worker链接,我实现了 SwUpdate 服务

这是我的代码:

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

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());
});
});
}
}

上面的代码做了什么:

  • 每当部署新代码时,旧的 serviceworker 都会检测到它。
  • 然后它订阅 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 中注册 service worker 来解决它:

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

如果你对我的service worker服务长什么样感兴趣,可以看代码here .

您还可以通过访问 yourdomain.com/ngsw/state

检查是否记录了任何错误

关于Angular5 Service Worker 更新 (SWUpdate) 未在 Firefox 上检测到。在 Chrome 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50073753/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com