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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
PushManager
getSubscription
hasPermission
DeprecatedNon-standard
permissionState
register
DeprecatedNon-standard
registrations
DeprecatedNon-standard
subscribe
supportedContentEncodings static property
unregister
DeprecatedNon-standard

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Non-standard. Check cross-browser support before using.
Deprecated. Not for use in new websites.
See implementation notes.

Vois aussi