首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular 6- "Service workers disabled or not supported“错误

Angular 6- "Service workers disabled or not supported“错误
EN

Stack Overflow用户
提问于 2018-09-26 16:40:01
回答 2查看 10.3K关注 0票数 13

我想用web-push模块和angular service worker推送通知订阅。我遵循了这些链接的说明:Angular Push Notifications: a Complete Step-by-Step GuidePush Notifications with Angular & Express,但是通知提示符并没有正常显示。我检查了swPush对象,发现它没有启用,我甚至不知道为什么我要完全按照这些链接所说的那样按照angular/pwa安装说明进行安装。希望这里有人能帮上忙。非常感谢!

我使用自己的Nodejs服务器运行应用程序,而不是使用http-server模块。

以下是我的推送订阅代码:

代码语言:javascript
复制
readonly VAPID_PUBLIC_KEY =
'BIfDkegCvhzctX06rYvwQImhbfAymWYE3wtcog9E4Zj7LOgX6TQFS6fZSqLCt01zBZtc1-jSwpZrZEmTQ2i95V8'; // key generated with web-push

 constructor(
   private user: UserService,
   private httpClient: HttpClient,
   private router: Router,
   private auth: AuthService,
   private swPush: SwPush
 ) {
     this.swPush.requestSubscription({
       serverPublicKey: this.VAPID_PUBLIC_KEY
     })
     .then(subcription => {
       console.log('Send ' + subcription + ' to server');
     })
     .catch(console.error);
}

返回错误:

错误:此浏览器在SwPush.push../node_modules/@angular/service-worker/fesm5/service-worker.js.SwPush.requestSubscription (-worker.js:146)、createClass (core.js:9311)、createDirectiveInstance (core.js:9186)、createViewNodes (core.js:10406)、createRootView (core.js:10320)禁用或不支持服务工作进程在ComponentFactoryBoundToModule.push../node_modules/@angular/core/fesm5/core.js.ComponentFactoryBoundToModule.create ( ComponentFactory_.push../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create )的callWithDebugContext (core.js:11351) at Object.debugCreateRootView as createRootView at core.js:8666 (core.js:3315)

预期结果:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-28 11:15:51

此错误是由于服务工作人员不使用ng serve造成的。用http-server运行,它就能正常工作。正如Angular service workers所说的:

由于ng serve不能与服务工作者一起工作,因此您必须使用单独的

服务器在本地测试您的项目。您可以使用任何HTTP服务器

票数 11
EN

Stack Overflow用户

发布于 2020-05-26 05:03:59

只需将服务工作者设置为在开发环境中工作,也在'AppModule‘中工作

代码语言:javascript
复制
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production})

代码语言:javascript
复制
ServiceWorkerModule.register('ngsw-worker.js', { enabled: true})
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52513466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档