ServiceWorkerGlobalScope: push イベント

Baseline 2023

Newly available

Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

メモ: この機能はサービスワーカー内でのみ利用可能です。

push イベントは、サービスワーカーがプッシュメッセージを受信したときにサービスワーカーのグローバルスコープ (ServiceWorkerGlobalScope インターフェイスで表現されるもの) に送られます。

このイベントはキャンセル不可で、バブリングしません。

構文

このイベント名を addEventListener() 等のメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。

js
addEventListener("push", (event) => {});

onpush = (event) => {};

イベント型

PushEvent です。 Event を継承しています。

Event ExtendableEvent PushEvent

イベントプロパティ

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

PushEvent.data 読取専用

PushMessageData オブジェクトへの参照を返します。これには PushSubscription に送られたデータが含まれています。

この例では、JSON データを受け取り、解釈し、メッセージに含まれる情報に基づいて処理するためにメッセージを送出する push イベント用のハンドラーを設定します。

js
self.addEventListener(
  "push",
  (event) => {
    let message = event.data.json();

    switch (message.type) {
      case "init":
        doInit();
        break;
      case "shutdown":
        doShutdown();
        break;
    }
  },
  false,
);

仕様書

Specification
Push API
# extensions-to-the-serviceworkerglobalscope-interface
Push API
# dom-serviceworkerglobalscope-onpush

ブラウザーの互換性

BCD tables only load in the browser

関連情報