PushManager: getSubscription() メソッド
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。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}`);
});
});
仕様書
| 仕様書 |
|---|
| Push API> # dom-pushmanager-getsubscription> |