MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

PushMessageData

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

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

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

プロパティ

なし。

メソッド

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

Push API Demo では、 最初に JSON.stringify() を介して 文字列に変換したうえで、サーバからプッシュメッセージで JSON オブジェクトを送信します(server.js example を見てください):

webPush.sendNotification(subscriber[2], 200, obj.key, JSON.stringify({
  action: 'chatMsg',
  name: obj.name,
  msg: obj.msg
}));

メッセージが service worker に到達したら、次の処理を行う前に、PushMessageData.json() を使用して JSON オブジェクトに変換します:

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);
  }
});

仕様

仕様 状態 コメント
Push API
PushMessageData の定義
草案 初期定義。

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 50.0 44.0 (44.0)[1] 未サポート 未サポート 未サポート
機能 Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
基本サポート 未サポート 未サポート 48.0 (48)[2] 未サポート 未サポート 未サポート 未サポート 50.0

関連項目

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

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