この記事は編集レビューを必要としています。ぜひご協力ください。
これは実験段階の機能です。
この機能は複数のブラウザで開発中の状態にあります。各ブラウザで用いるために、適切なベンダー接頭辞が必要な場合があります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザの将来のバージョンで変更になる可能性があることに注意してください。
PushManager
インターフェースの PushManager.getSubscription()
メソッドは、既存のプッシュサブスクリプションを取得します。
これは既存のプッシュサブスクリプションの詳細を含む PushSubscription
を解決する Promise
を返します。既存のプッシュサブスクリプションが存在しない場合 null
値で解決されます。
構文
PushManager.getSubscription().then(function(pushSubscription) { ... } );
パラメーター
なし。
戻り値
PushSubscription
オブジェクトで解決される Promise
。
例
このコードスニペットは、push messaging and notification sample から取ってきました(使用できるライブデモはありません)。
// サブスクリプションをチェックするために、service worker の登録が必要である。 navigator.serviceWorker.ready.then(function(serviceWorkerRegistration) { // 既にプッシュメッセージサブスクリプションがあるか? serviceWorkerRegistration.pushManager.getSubscription() .then(function(subscription) { // プッシュメッセージからサブスクライブ / アンサブスクライブ // する任意の UI を有効にする var pushButton = document.querySelector('.js-push-button'); pushButton.disabled = false; if (!subscription) { // プッシュを購読していない場合、ユーザーがプッシュできるように // UI を設定する。 return; } // 最新の subscriptionId でサーバ同期を維持する。 sendSubscriptionToServer(subscription); showCurlCommand(subscription); // プッシュメッセージの購読を表示するために // UI を設定する。 pushButton.textContent = 'Disable Push Messages'; isPushEnabled = true; }) .catch(function(err) { window.Demo.debug.log('Error during getSubscription()', err); }); }); }
仕様
仕様 | 状態 | コメント |
---|---|---|
Push API getSubscription() の定義 |
草案 | 初期定義。 |
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
基本サポート | 42.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] | 未サポート | 未サポート | 未サポート | 未サポート | 42.0 |
- [1] Push(と Service Workers)は、 have been disabled in the Firefox 45 延長サポート版 (ESR)では使用できません。
- [2] Firefox for Android 48 から、既定で Push を使用できます。