我有一个Angular离子PWA。每个软件包都是最新版本。
我有一个SwupdaterService和在生产模式下的应用程序总是重新加载,像循环,没有任何更新。
这里我的服务:
export class SwupdaterService {
constructor(public updates: SwUpdate) {
if (updates.isEnabled) {
interval(6 * 60 * 60).subscribe(() => updates.checkForUpdate()
.then(() => console.log('checking for updates')));
}
}
public checkForUpdates(): void {
this.updates.versionUpdates.subscribe(event => this.promptUser());
}
private promptUser(): void {
console.log('updating to new version');
this.updates.activateUpdate().then((res) => {
alert('here!');
document.location.reload()
});
}
}
在应用程序模块中,我有这个:
ServiceWorkerModule.register('ngsw-worker.js', {
enabled: environment.production,
// Register the ServiceWorker as soon as the application is stable
// or after 30 seconds (whichever comes first).
registrationStrategy: 'registerWhenStable:30000'
}),
最后我的应用程序组件:
export class AppComponent {
constructor(
private platform: Platform,
private sw: SwupdaterService,
private localizationService: LocalizationService) { }
async ngOnInit() {
await this.initializeApp();
}
async initializeApp() {
await this.platform.ready();
this.sw.checkForUpdates();
await this.localizationService.setInitialAppLanguage();
}
}
有人知道为什么会这样吗?
1条答案
按热度按时间sigwle7e1#
我修复了这个问题,将checkForUpdates函数替换为这个函数:
就像我在服务中看到的。工人: