L'interface PushManager
=======================

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` (en-US).

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` (en-US) 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` (en-US) 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()` (en-US) 
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()` (en-US) 
Obsolète

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

`PushManager.registrations()` (en-US) 
Obsolète

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

`PushManager.unregister()` (en-US) 
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()` (en-US).

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 with JavaScript enabled. Enable JavaScript to view data.

Vois aussi
----------

* L'API Push
* L'API Service Worker