PushManager: getSubscription() メソッド
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2023年3月.
PushManager.getSubscription() は PushManager インターフェイスのメソッドで、既存のプッシュサブスクリプションを取得します。
これは既存のプッシュサブスクリプションの詳細を含む PushSubscription で解決する Promise を返します。既存のプッシュサブスクリプションが存在しない場合 null 値で解決します。
構文
js
getSubscription()
引数
なし。
返値
Promise です。これは PushSubscription オブジェクトまたは null で解決されます。
例
このコードスニペットは、 push messaging and notification sample から取得したものです(使用できるライブデモはありません)。
js
// サブスクリプションをチェックするためにサービスワーカーの登録が必要
navigator.serviceWorker.ready.then((serviceWorkerRegistration) => {
// 既にプッシュメッセージのサブスクリプションがあるか?
serviceWorkerRegistration.pushManager
.getSubscription()
.then((subscription) => {
// プッシュメッセージに加入/脱退する任意の UI を有効にする
const 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((err) => {
console.error(`Error during getSubscription(): ${err}`);
});
});
仕様書
| Specification |
|---|
| Push API> # dom-pushmanager-getsubscription> |
ブラウザーの互換性
Loading…