PushManager.getSubscription()
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
PushManager
インターフェイスの PushManager.getSubscription()
メソッドは、既存のプッシュサブスクリプションを取得します。
これは既存のプッシュサブスクリプションの詳細を含む PushSubscription
を解決する Promise
を返します。既存のプッシュサブスクリプションが存在しない場合 null
値で解決されます。
構文
js
PushManager.getSubscription().then(function(pushSubscription) { ... } );
引数
なし。
返値
PushSubscription
オブジェクトで解決される Promise
。
例
このコードスニペットは、push messaging and notification sample から取ってきました(使用できるライブデモはありません)。
js
// サブスクリプションをチェックするために、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);
});
});
}
仕様書
Specification |
---|
Push API # dom-pushmanager-getsubscription |
ブラウザーの互換性
BCD tables only load in the browser