2017-07-20 21 views
1

最新のAngularを使用してPWAを構築しています。Angular Service Workerを使用したAndroidローカル通知

私はAngular Mobile Toolkitを利用しており、angular/service-workerを使用してローカル通知を送信したいと考えています。しかし、私はそれを動作させることはできません。

私はサーバーに登録して通知を送信できますが、自分のアプリから通知を送信したいと思います。私はそれがデスクトップ上にうまく機能、angular2-notificationsを使用してみましたが、それは私に合わないように通知APIからコンストラクタ

new Notification(title, options) 

は、Android上でもう動作しません。

angular/service-workerを使用してAndroid(Chrome)でローカル通知を送信する方法はありますか?あるいは別の方法かもしれません。

EDIT

マチェイの答えが正しい方向に私を指摘し、私はそれが次のコードを使用して動作させることができました

navigator.serviceWorker.getRegistration() 
     .then((reg) => { 
       reg.showNotification(title, noti); 
      }); 

PS:私はこれを一緒に使用することに注意してくださいangular/service-worker。私はangular/service-workerを使用してサービスワーカーを登録し、上記のコードは登録済みのサービスワーカーを使用しています。また、サービスワーカーが作業するためには、安全な接続が必要であることに注意してください。

答えて

1

AndroidのChromeはHTML5の通知APIと互換性がないため、local notificationsを送信することはできません。

私の知る限り@angular/service-workerソースコードに見ることができるように、通知を表示するために、それらが使用される以下の方法:

this.worker.showNotification(desc['title'], options);

this.workerタイプVersionWorkerの目的です。

おそらく、this.workerを再利用する方法があります。

角度のチームによって書かれたプッシュプラグインの完全なコードは、ここで見つけることができます:サービス・ワーカープラグインのhttps://github.com/angular/mobile-toolkit/blob/master/service-worker/worker/src/plugins/push/index.ts

例レポはここで見つけることができます:https://github.com/maciejtreder/ng-http-sw-proxy(カタログplugin)。

+0

こんにちはMaciej、あなたの答えに感謝します。 AndroidのChromeは通知APIと互換性がないことにご注意ください。しかしサービスワーカーAPIを使用することができます(私の場合、[角度/サービスワーカー](https://github.com/angular/mobile-toolkit/tree/master/service-worker/worker)を使用しています)。サーバーからの通知を購読する。同じAPIを使用してローカル通知を送信できるかどうか疑問に思っています –

+0

あなたは正しいです。私は私の答えを更新しました。 –

+0

again again;) –

関連する問題