Angular-是否可以两次注册ngsw-worker.js(在main.ts和app.module.ts中)?

时间:2018-06-29 03:56:17

标签: angular angular-service-worker

我正在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的两个实例将是一个问题吗?

0 个答案:

没有答案