我正在main.ts和app.module.ts中都注册ngsw-worker.js。这个可以吗?
例如它将创建两个Service Worker实例?服务人员会发生冲突吗?
main.ts
platformBrowserDynamic().bootstrapModule(AppModule).then(() => {
if ('serviceWorker' in navigator && environment.production) {
navigator.serviceWorker.register('/ngsw-worker.js');
}
}).catch(err => console.log(err));
app.module.ts
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
ServiceWorkerModule.register('/ngsw-worker.js', {enabled: environment.production}),
AppRoutingModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {
}
由于this reason,我正在main.ts中注册它。
它已在app.module.ts中注册,因为默认的Angular-cli SW项目在此处添加了它。
在main.ts和app.module.ts中注册服务工作者之后,我将Firebase Cloud Messaging sdk添加到Service Worker实例中。
navigator.serviceWorker
.ready
.then((registration) => this.firebase.messaging().useServiceWorker(registration));
因此,简单来说,注册ngsw-worker.js的两个实例将是一个问题吗?