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 objetPushSubscription
contenant les détails d'un abonnement existant. S'il n'existe pas d'abonnement existant, cette promesse renvoie une valeurnull
. PushManager.permissionState()
-
Retourne une promesse (
Promise
) qui correspond à l'état de la permission duPushManager
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 objetPushSubscription
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 statutPushPermissionStatus
de l'application web requérante, qui sera l'un des éléments suivants :granted
,denied
, oudefault
. Remplacée parPushManager.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
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