PushManager

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

Push APIPushManager インターフェイスは、サードパーティのサーバーからの通知だけではなく、プッシュ通知へのリクエスト 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);
      }
    );
  });

仕様書

Specification
Push API
# pushmanager-interface

ブラウザーの互換性

BCD tables only load in the browser

関連項目