1. 開発者向けのウェブ技術
  2. Web API
  3. PushManager
  4. getSubscription()

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

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

ブラウザーの互換性

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /