NotificationEvent

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

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

コンストラクター

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

プロパティ

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

NotificationEvent.notification 読取専用
イベントを発生させるためにクリックされた通知を表す Notification オブジェクトを返します。
NotificationEvent.action 読取専用
ユーザーがクリックした通知ボタンの文字列 ID を返します。ユーザーがアクションボタン以外の場所で通知をクリックした場合、または通知にボタンがない場合、この値は空の文字列を返します。

メソッド

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

ExtendableEvent.waitUntil()

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

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('/');
  }));
});

仕様書

仕様書 状態 備考
Notifications API
NotificationEvent の定義
現行の標準 Living standard.

: このインターフェイスは Notifications API で定義されていますが、ServiceWorkerGlobalScope を介してアクセスします。

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
NotificationEvent
実験的
Chrome 完全対応 42Edge 完全対応 ≤18Firefox 完全対応 44
補足
完全対応 44
補足
補足 Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
IE 未対応 なしOpera 完全対応 37Safari ? WebView Android 未対応 なしChrome Android 完全対応 42Firefox Android 完全対応 44Opera Android 完全対応 37Safari iOS ? Samsung Internet Android 完全対応 4.0
NotificationEvent() constructor
実験的
Chrome 完全対応 42Edge 完全対応 ≤18Firefox 完全対応 44
補足
完全対応 44
補足
補足 Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
IE 未対応 なしOpera 完全対応 37Safari ? WebView Android 未対応 なしChrome Android 完全対応 42Firefox Android 完全対応 44Opera Android 完全対応 37Safari iOS ? Samsung Internet Android 完全対応 4.0
action
実験的
Chrome 完全対応 48Edge 完全対応 ≤18Firefox 完全対応 44
補足
完全対応 44
補足
補足 Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
IE 未対応 なしOpera 未対応 なしSafari ? WebView Android 未対応 なしChrome Android 完全対応 48Firefox Android 完全対応 44Opera Android 未対応 なしSafari iOS ? Samsung Internet Android 完全対応 5.0
notification
実験的
Chrome 完全対応 42Edge 完全対応 ≤18Firefox 完全対応 44
補足
完全対応 44
補足
補足 Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
IE 未対応 なしOpera 完全対応 37Safari ? WebView Android 未対応 なしChrome Android 完全対応 42Firefox Android 完全対応 44Opera Android 完全対応 37Safari iOS ? Samsung Internet Android 完全対応 4.0

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
実装ノートを参照してください。
実装ノートを参照してください。