これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

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

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

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

プロパティ

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

メソッド

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

非推奨のメソッド

PushManager.hasPermission()
リクエストしている 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 の定義
草案 初期定義。

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung Internet
基本対応
実験的
Chrome 完全対応 42Edge 完全対応 16
無効
完全対応 16
無効
無効 From version 16: this feature is behind the Enable service workers preference.
完全対応 17
Firefox 完全対応 44
補足
完全対応 44
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)
IE 未対応 なしOpera 完全対応 29Safari 未対応 なしWebView Android 未対応 なしChrome Android 完全対応 42Edge Mobile 完全対応 ありFirefox Android 完全対応 48
補足
完全対応 48
補足
補足 Push enabled by default.
Opera Android 完全対応 29Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0
supportedContentEncodings
実験的
Chrome 完全対応 60Edge 完全対応 16
無効
完全対応 16
無効
無効 From version 16: this feature is behind the Enable service workers preference.
完全対応 17
Firefox 完全対応 44
補足
完全対応 44
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)
IE 未対応 なしOpera 完全対応 47Safari 未対応 なしWebView Android 未対応 なしChrome Android 完全対応 60Edge Mobile 完全対応 ありFirefox Android 完全対応 48
補足
完全対応 48
補足
補足 Push enabled by default.
Opera Android 完全対応 47Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0
getSubscription
実験的
Chrome 完全対応 42Edge 完全対応 16
無効
完全対応 16
無効
無効 From version 16: this feature is behind the Enable service workers preference.
完全対応 17
Firefox 完全対応 44
補足
完全対応 44
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)
IE 未対応 なしOpera 完全対応 29Safari 未対応 なしWebView Android 未対応 なしChrome Android 完全対応 42Edge Mobile 完全対応 ありFirefox Android 完全対応 48
補足
完全対応 48
補足
補足 Push enabled by default.
Opera Android 完全対応 29Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0
permissionState
実験的
Chrome 完全対応 42Edge 完全対応 16
無効
完全対応 16
無効
無効 From version 16: this feature is behind the Enable service workers preference.
完全対応 17
Firefox 完全対応 44
補足
完全対応 44
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)
IE 未対応 なしOpera 完全対応 29Safari 未対応 なしWebView Android 未対応 なしChrome Android 完全対応 42Edge Mobile 完全対応 ありFirefox Android 完全対応 48
補足
完全対応 48
補足
補足 Push enabled by default.
Opera Android 完全対応 29Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0
subscribe
実験的
Chrome 完全対応 42
補足
完全対応 42
補足
補足 The options parameter with a applicationServerKey value is required.
Edge 完全対応 16
無効
完全対応 16
無効
無効 From version 16: this feature is behind the Enable service workers preference.
完全対応 17
Firefox 完全対応 44
補足
完全対応 44
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)
IE 未対応 なしOpera 完全対応 29Safari 未対応 なしWebView Android 未対応 なしChrome Android 完全対応 42Edge Mobile 完全対応 ありFirefox Android 完全対応 48
補足
完全対応 48
補足
補足 Push enabled by default.
Opera Android 完全対応 29Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0
hasPermission
実験的
Chrome 完全対応 42Edge 完全対応 16
無効
完全対応 16
無効
無効 From version 16: this feature is behind the Enable service workers preference.
完全対応 17
Firefox 完全対応 44
補足
完全対応 44
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)
IE 未対応 なしOpera 完全対応 29Safari 未対応 なしWebView Android 未対応 なしChrome Android 完全対応 42Edge Mobile 完全対応 ありFirefox Android 完全対応 48
補足
完全対応 48
補足
補足 Push enabled by default.
Opera Android 完全対応 29Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0
register
実験的
Chrome 完全対応 42Edge 完全対応 16
無効
完全対応 16
無効
無効 From version 16: this feature is behind the Enable service workers preference.
完全対応 17
Firefox 完全対応 44
補足
完全対応 44
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)
IE 未対応 なしOpera 完全対応 29Safari 未対応 なしWebView Android 未対応 なしChrome Android 完全対応 42Edge Mobile 完全対応 ありFirefox Android 完全対応 48
補足
完全対応 48
補足
補足 Push enabled by default.
Opera Android 完全対応 29Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0
registrations
実験的
Chrome 完全対応 42Edge 完全対応 16
無効
完全対応 16
無効
無効 From version 16: this feature is behind the Enable service workers preference.
完全対応 17
Firefox 完全対応 44
補足
完全対応 44
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)
IE 未対応 なしOpera 完全対応 29Safari 未対応 なしWebView Android 未対応 なしChrome Android 完全対応 42Edge Mobile 完全対応 ありFirefox Android 完全対応 48
補足
完全対応 48
補足
補足 Push enabled by default.
Opera Android 完全対応 29Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0
unregister
実験的
Chrome 完全対応 42Edge 完全対応 16
無効
完全対応 16
無効
無効 From version 16: this feature is behind the Enable service workers preference.
完全対応 17
Firefox 完全対応 44
補足
完全対応 44
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)
IE 未対応 なしOpera 完全対応 29Safari 未対応 なしWebView Android 未対応 なしChrome Android 完全対応 42Edge Mobile 完全対応 ありFirefox Android 完全対応 48
補足
完全対応 48
補足
補足 Push enabled by default.
Opera Android 完全対応 29Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0

凡例

完全対応  
完全対応
未対応  
未対応
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
実装ノートを参照してください。
実装ノートを参照してください。
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。

関連項目

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

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