Angular 角度-可以注册两次ngsw-worker.js(在main.ts和app.module.ts中)吗?
我正在main.ts和app.module.ts中注册ngsw-worker.js。这样行吗 例如,它会创建2个service worker实例吗?服务人员是否会发生冲突 main.tsAngular 角度-可以注册两次ngsw-worker.js(在main.ts和app.module.ts中)吗?,angular,angular-service-worker,Angular,Angular Service Worker,我正在main.ts和app.module.ts中注册ngsw-worker.js。这样行吗 例如,它会创建2个service worker实例吗?服务人员是否会发生冲突 main.ts platformBrowserDynamic().bootstrapModule(AppModule).then(() => { if ('serviceWorker' in navigator && environment.production) { navigator.se
platformBrowserDynamic().bootstrapModule(AppModule).then(() => {
if ('serviceWorker' in navigator && environment.production) {
navigator.serviceWorker.register('/ngsw-worker.js');
}
}).catch(err => console.log(err));
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
ServiceWorkerModule.register('/ngsw-worker.js', {enabled: environment.production}),
AppRoutingModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {
}
应用程序模块.ts
platformBrowserDynamic().bootstrapModule(AppModule).then(() => {
if ('serviceWorker' in navigator && environment.production) {
navigator.serviceWorker.register('/ngsw-worker.js');
}
}).catch(err => console.log(err));
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
ServiceWorkerModule.register('/ngsw-worker.js', {enabled: environment.production}),
AppRoutingModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {
}
我在main.ts注册它是因为
它已在app.module.ts中注册,因为默认Angular cli SW项目将其添加到此处
在main.ts和app.module.ts中注册了服务工作者之后,我将Firebase Cloud Messaging sdk添加到服务工作者实例中
navigator.serviceWorker
.ready
.then((registration) => this.firebase.messaging().useServiceWorker(registration));
简单地说,注册两个ngsw-worker.js实例会有问题吗?Hi。。我有你同样的问题,使用同样的东西(firebase消息)。。就我所见,我想是的。。它注册了2次。因为我收到了2个通知。。。。但也许我是worng@federicoscamuzzi这可以正常工作,但在main.ts中注册服务工作者会中断服务器端渲染。如果我移除这个ssr,效果很好。有什么帮助吗?我没试过SSR。