Angular 6 - ошибка «Сервисные работники отключены или не поддерживаются» - PullRequest
0 голосов
/ 26 сентября 2018

Я хочу отправить подписку на уведомления с помощью модуля web-push и angular service worker.Я следовал инструкциям по этим ссылкам: Angular Push-уведомления: полное пошаговое руководство и Push-уведомлений с Angular & Express , но приглашение не отображалось, поскольку онодолжен.Я проверил объект swPush и обнаружил, что он не включен, и я не знаю, почему даже я следовал инструкциям по установке angular/pwa в точности так, как указано в этих ссылках.Надеюсь, кто-то здесь может помочь.Большое спасибо!

Я запускаю приложение со своим собственным Nodejs сервером, а не с модулем http-server.

Вот мой код принудительной подписки:

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 (service-worker.js: 146) в новом DashboardComponent (dashboard.component.ts: 40) в createClass (core.js: 9311) в createDirectiveInstance (core.js: 9186) в createViewNodes (core.js: 10406)в createRootView (core.js: 10320) в callWithDebugContext (core.js: 11351) в Object.debugCreateRootView [как createRootView] (core.js: 10838) в ComponentFactory_.push ../ node_modules / @ angular / core / fesm5 / core.js.ComponentFactory_.create (core.js: 8666) в ComponentFactoryBoundToModule.push ../ node_modules/@angular/core/fesm5/core.js.ComponentFactoryBoundToModule.create (core.js: 3315)

1023 * Ожидаемый результат:

result

1 Ответ

0 голосов
/ 28 сентября 2018

Эта ошибка была вызвана тем, что работники сферы обслуживания не работают с ng serve.Запустите с http-server, тогда он работает нормально.Как и в Служащие Angular сказали:

Поскольку служба ng serve не работает с работниками службы, вы должны использовать отдельный HTTP-сервер для локального тестирования вашего проекта.Вы можете использовать любой HTTP-сервер

...