ServiceWorkerGlobalScope.onnotificationclick

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

ServiceWorkerGlobalScope.onnotificationclick プロパティは、ServiceWorkerGlobalScope オブジェクトで notificationclick イベントが送り出されるたびに呼び出されるイベントハンドラーです。つまり、ユーザーが ServiceWorkerRegistration.showNotification() で生成された通知をクリックしたときです。

メインスレッド、または Notification() コンストラクターを使用して Service Worker ではない Worker で生成された通知は、Notification オブジェクト自体で click イベントを代わりに受け取ります。

ノート: Notification() コンストラクターを使用して ServiceWorkerGlobalScope 内で通知を生成しようとすると、エラーがスローされます。

構文

ServiceWorkerGlobalScope.onnotificationclick = function(NotificationEvent) { ... };

self.onnotificationclick = function(event) {
  console.log('On notification click: ', event.notification.tag);
  event.notification.close();

  // This looks to see if the current is already open and
  // focuses if it is
  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
onnotificationclick の定義
現行の標準 初期定義。このプロパティは、ServiceWorkerGlobalScope の一部だが Notifications_API で定義されている。

ブラウザー実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 42.0 44.0 (44.0)[1] 未サポート ? 未サポート
機能 Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
基本サポート ? 44.0 (44.0) (有) 未サポート ? 未サポート 42.0

[1] Service worker(と Push)は、Firefox 45 延長サポート版(ESR)では使用できません。

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,