PushManager
        
        
          
                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月.
* Some parts of this feature may have varying levels of support.
PushManager はプッシュ API のインターフェイスで、サードパーティのサーバーからの通知だけではなく、プッシュ通知へのリクエスト URL を取得するための方法を提供します。
このインターフェイスは、ServiceWorkerRegistration.pushManager プロパティを経由してアクセスできます。
インスタンスプロパティ
PushManager.supportedContentEncodings- 
プッシュメッセージのペイロードの暗号化でサポートされているコンテンツエンコーディングの配列を返します。
 
インスタンスメソッド
PushManager.getSubscription()- 
既存のプッシュサブスクリプションを受け取ります。これは既存のプッシュサブスクリプションの詳細を含む
PushSubscriptionに解決されるPromiseを返します。既存のプッシュサブスクリプションが存在しない場合、null値で解決されます。 PushManager.permissionState()- 
現在の
PushSubscriptionの許可状況で解決されるPromiseを返します。許可状況は'granted'、'denied'、'prompt'のいずれかです。 PushManager.subscribe()- 
プッシュサービスに加入します。プッシュサブスクリプションの詳細を含む
PushSubscriptionオブジェクトで解決されるPromiseを返します。現在のサービスワーカーに既存のサブスクリプションがない場合、新しいプッシュサブスクリプションが生成されます。 
非推奨のメソッド
PushManager.hasPermission()非推奨;- 
リクエストしているウェブアプリの
PushPermissionStatusで解決されるPromiseを返します。この値はgranted、denied、defaultのいずれかです。PushManager.permissionState()で置き換えられました。 PushManager.register()非推奨;- 
プッシュサービスに加入します。
PushManager.subscribe()で置き換えられました。 PushManager.registrations()非推奨;- 
既存のプッシュサブスクリプションを受け取ります。
PushManager.getSubscription()で置き換えられました。 PushManager.unregister()非推奨;- 
指定したサブスクリプションのエンドポイントを登録解除して削除します。API の更新後は、サブスクリプションは
PushSubscription.unsubscribe()メソッドを呼び出して登録解除することになりました。 
例
this.onpush = (event) => {
  console.log(event.data);
  // ここから、IndexedDB にデータを書き込んだり、いずれかのウィンドウに
  // それを送信したり、通知を表示したりできます。
};
navigator.serviceWorker
  .register("serviceworker.js")
  .then((serviceWorkerRegistration) => {
    serviceWorkerRegistration.pushManager.subscribe().then(
      (pushSubscription) => {
        console.log(pushSubscription.endpoint);
        // これでアプリケーションサーバーが使用できるプッシサブスクリプションの
        // 詳細が利用できるようになり、例えば XMLHttpRequest を使用してサーバーに
        // 送信することができます。
      },
      (error) => {
        console.error(error);
      },
    );
  });
仕様書
| Specification | 
|---|
| Push API> # pushmanager-interface>  | 
            
ブラウザーの互換性
Loading…