2017-01-26 7 views
0

サービスワーカーがそのサイトの作成したタブで実行中のスクリプトから通知を取り消すことができるのだろうか?サービスワーカーによって作成されたブラウザから通知をキャンセルする

これは私が今持っているものです。

  • 私はサービスワーカーにメッセージをプッシュするFirebaseメッセージングを使用しています。
  • サイトが開かれていないか、バックグラウンドでない場合、サービスワーカーは通知を作成します。

ユーザーが通知をクリックせずにサイトを開くと、私はそれを却下したいと思います。特定のアクションが実行されたときに通知を却下するだけなので、サイトのjavascriptから行う必要があります。サービスワーカーまたは..にメッセージを送信する必要がありますか?

答えて

0

クライアントからは、ServiceWorkerRegistrationを介してサービスワーカーにアクセスでき、SWに登録されているすべての通知を取得する方法があります。

参照:ServiceWorkerRegistration.getNotifications()

あり、別の方法があるが、それはより多くのコードが含ま:、サービスワーカーに(navigator.serviceWorker.controller.postMessageを使用して)メッセージを送信する通知(self.registration.getNotifications())を取得し、そこからそれらをキャンセルします。これが私の質問を解決し、最初の解決策を見つけた方法です。サービス就労者に他のことをさせる必要がある場合には、これはまだ役立つかもしれません。また、それが作成されたのと同じ場所で通知をキャンセルするのもいいですね:)

関連する問題