L'interface PushManager

Baseline 2023

Newly available

Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

L'interface PushManager de l'API Push permet de recevoir des notifications de serveurs tiers et de demander des URL pour les notifications push.

Cette interface est accessible via la propriété ServiceWorkerRegistration.pushManager.

Propriétés statitiques

PushManager.supportedContentEncodings

Retourne un tableau des encodages de contenu pris en charge qui peuvent être utilisés pour chiffrer la charge utile d'un message push.

Méthodes d'instance

PushManager.getSubscription()

Récupère un abonnement push existant. Elle renvoie une promesse (Promise) qui se résout en un objet PushSubscription contenant les détails d'un abonnement existant. S'il n'existe pas d'abonnement existant, cette promesse renvoie une valeur null.

PushManager.permissionState()

Retourne une promesse (Promise) qui correspond à l'état de la permission du PushManager courant. La valeur de résolution sera l'une des valeurs suivantes : 'granted', 'denied', ou 'prompt'.

PushManager.subscribe()

Permet de s'abonner à un service de push. Il retourne une promesse (Promise) qui se résout en un objet PushSubscription contenant les détails d'un abonnement à un service push. Un nouvel abonnement est créé si le service worker actuel n'a pas d'abonnement existant.

Méthodes obsolètes

PushManager.hasPermission() Obsolète

Retourne une promesse (Promise) qui résout le statut PushPermissionStatus de l'application web requérante, qui sera l'un des éléments suivants : granted, denied, ou default. Remplacée par PushManager.permissionState().

PushManager.register() Obsolète

Permet de s'abonner à un abonnement push. Remplacée par PushManager.subscribe().

PushManager.registrations() Obsolète

Récupère les abonnements push existants. Remplacée par PushManager.getSubscription().

PushManager.unregister() Obsolète

Désinscrit et supprime un point d'extrémité d'abonnement spécifié. Dans l'API actuelle, un abonnement est désinscrit en appelant la méthode PushSubscription.unsubscribe().

Exemple

js
this.onpush = (event) => {
  console.log(event.data);
  // A partir de là, nous pouvons écrire les données dans IndexedDB, les envoyer
  // à n'importe quelle fenêtre ouverte, afficher une notification, etc.
};

navigator.serviceWorker
  .register("serviceworker.js")
  .then((serviceWorkerRegistration) => {
    serviceWorkerRegistration.pushManager.subscribe().then(
      (pushSubscription) => {
        console.log(pushSubscription.endpoint);
        // Les détails de l'abonnement push nécessaires au serveur d'application
        // sont maintenant disponibles et peuvent lui être envoyées en utilisant,
        // par exemple, un XMLHttpRequest.
      },
      (error) => {
        console.error(error);
      },
    );
  });

Spécifications

Specification
Push API
# pushmanager-interface

Compabilité des navigateurs

BCD tables only load in the browser

Vois aussi