--- title: PushMessageData slug: Web/API/PushMessageData tags: - API - Experimental - Interface - Push - Push API - PushMessageData - Reference - Service Workers translation_of: Web/API/PushMessageData ---

{{APIRef("Push API")}}{{SeeCompatTable()}}

Push APIPushMessageData インターフェースは、さまざまなフォーマットでサーバーから送信されるプッシュテータを取得する方法を提供します。

Fetch API の同様のメソッドが 1 回しか呼び出せないのと異なり、これらは複数回呼び出せます。

Push API を通して受け取ったメッセージはプッシュサービスによって暗号化されて送信され、PushMessageData インターフェースのメソッドで利用可能になる前にブラウザーによって自動的に 復号化されます。

プロパティ

なし。

メソッド

{{domxref("PushMessageData.arrayBuffer()")}}
データを {{domxref("ArrayBuffer")}} オブジェクトとして抜き出します。
{{domxref("PushMessageData.blob()")}}
データを {{domxref("Blob")}} オブジェクトとして抜き出します。
{{domxref("PushMessageData.json()")}}
データを JSON オブジェクトとして抜き出します。
{{domxref("PushMessageData.text()")}}
データをプレーンテキスト文字列として抜き出します。

self.addEventListener('push', function(event) {
  var obj = event.data.json();

  if(obj.action === 'subscribe' || obj.action === 'unsubscribe') {
    fireNotification(obj, event);
    port.postMessage(obj);
  } else if(obj.action === 'init' || obj.action === 'chatMsg') {
    port.postMessage(obj);
  }
});

仕様

仕様 状態 コメント
{{SpecName('Push API', '#pushmessagedata-interface', 'PushMessageData')}} {{Spec2('Push API')}} 初期定義。

ブラウザー実装状況

{{Compat("api.PushMessageData")}}