PushManager

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

Push APIPushManager インターフェースは、3rd パーティーのサーバーからの通知だけではなく、プッシュ通知へのリクエスト URL を取得するための方法を提供します。

このインターフェースは、ServiceWorkerRegistration.pushManager プロパティを経由してアクセスできます。

ノート:このインターフェースは、廃止された PushRegistrationManagerで以前に提案されていた機能をリプレースしています。

プロパティ

PushManager.supportedContentEncodings (en-US)
プッシュメッセージのペイロードの暗号化でサポートされているコンテンツエンコーディングの配列を返します。

メソッド

PushManager.getSubscription()
既存のプッシュサブスクリプションを受け取ります。これは既存のプッシュサブスクリプションの詳細を含む PushSubscription を解決する Promise を返します。既存のプッシュサブスクリプションが存在しない場合、null 値で解決されます。
PushManager.permissionState()
現在の PushSubscription の許可状況で解決される Promise を返します。許可状況は 'granted''denied''prompt' のいずれかです。
PushManager.subscribe()
プッシュサービスを提供します。プッシュサブスクリプションの詳細を含む PushSubscription オブジェクトで解決される Promise を返します。現在の service worker に既存のサブスクリプションがない場合、新しいプッシュサブスクリプションが生成されます。

非推奨のメソッド

PushManager.hasPermission() (en-US)
リクエストしている Web アプリのPushPermissionStatus で解決される Promise を返します。この値は granteddenieddefault のいずれかです。PushManager.permissionState() で置き換えられました。
PushManager.register()
プッシュサービスを提供します。 PushManager.subscribe() で置き換えられました。
PushManager.registrations()
既存のプッシュサブスクリプションを受け取ります。PushManager.getSubscription() で置き換えられました。
PushManager.unregister()
指定のサブスクリプションエンドポイントを解除して削除します。API のアップデートで、サブスクリプションは、PushSubscription.unsubscribe() メソッドを呼び出して解除することになりました。

this.onpush = function(event) {
  console.log(event.data);
  // ここから、IndexedDB にデータを書き込んだり、いずれかのウィンドウに
  // それを送信したり、通知を表示したりできます。
}

navigator.serviceWorker.register('serviceworker.js').then(
  function(serviceWorkerRegistration) {
    serviceWorkerRegistration.pushManager.subscribe().then(
      function(pushSubscription) {
        console.log(pushSubscription.subscriptionId);
        console.log(pushSubscription.endpoint);
        // ここから、IndexedDB にデータを書き込んだり、いずれかのウィンドウに
        // それを送信したり、通知を表示したりできます。
      }, function(error) {
        // 開発中は、コンソールにエラーを表示するのに役立ちます。
        // 本番環境では、アプリケーションサーバにエラー情報を送信
        // するためにも 役立ちます。
        console.log(error);
      }
    );
  });

仕様

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

ブラウザー実装状況

BCD tables only load in the browser

関連項目