NotificationEvent

onnotificationclick ハンドラーに渡される引数である NotificationEvent インターフェイスは、 ServiceWorkerServiceWorkerGlobalScope で配信される通知クリックイベントを表します。

このインターフェイスは ExtendableEvent インターフェイスを継承しています。

コンストラクター

NotificationEvent()

新しい NotificationEvent オブジェクトを作成します。

プロパティ

祖先である Event からプロパティを継承しています。

NotificationEvent.notification 読取専用

イベントを発生させるためにクリックされた通知を表す Notification オブジェクトを返します。

NotificationEvent.action 読取専用

ユーザーがクリックした通知ボタンの文字列 ID を返します。ユーザーがアクションボタン以外の場所で通知をクリックした場合、または通知にボタンがない場合、この値は空の文字列を返します。

メソッド

親の ExtendableEvent からメソッドを継承しています。

ExtendableEvent.waitUntil()

イベントの存続期間を延長します。作業が進行中であることをブラウザーに伝えます。

js
self.addEventListener("notificationclick", function (event) {
  console.log("On notification click: ", event.notification.tag);
  event.notification.close();

  // これは、現在のページが既に開いているかどうかを確認し、
  // そうならばフォーカスします
  event.waitUntil(
    clients
      .matchAll({
        type: "window",
      })
      .then(function (clientList) {
        for (var i = 0; i < clientList.length; i++) {
          var client = clientList[i];
          if (client.url == "/" && "focus" in client) return client.focus();
        }
        if (clients.openWindow) return clients.openWindow("/");
      }),
  );
});

仕様書

Specification
Notifications API Standard
# notificationevent

ブラウザーの互換性

BCD tables only load in the browser