We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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

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 の定義
草案 初期定義。

ブラウザ実装状況

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)
基本サポート 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,