PushManager

La interfaz PushManager de la API Push proporciona una forma de recibir notificaciones de servidores de terceros, así como solicitar URL para notificaciones push.

Se accede a esta interfaz a través de la propiedad ServiceWorkerRegistration.pushManager (en-US).

Propiedades estáticas

PushManager.supportedContentEncodings

Devuelve una matriz de codificaciones de contenido admitidas que se pueden usar para cifrar la carga útil de un mensaje push.

Métodos de instancia

PushManager.getSubscription() (en-US)

Recupera una suscripción push existente. Devuelve un objeto Promise que se resuelve en un objeto PushSubscription (en-US) que contiene detalles de una suscripción existente. Si no existe una suscripción existente, esto se resuelve en un valor null.

PushManager.permissionState() (en-US)

Devuelve un Promise que resuelve el estado de permiso del PushManager actual, que será 'granted', 'denied' o 'prompt'.

PushManager.subscribe() (en-US)

Se suscribe a un servicio push. Devuelve un objeto Promise que se resuelve en un objeto PushSubscription (en-US) que contiene detalles de una suscripción push. Se crea una nueva suscripción push si el trabajador del servicio actual no tiene una suscripción existente.

Métodos obsoletos

PushManager.hasPermission() (en-US) Obsoleto

Devuelve un Promise que se resuelve en PushPermissionStatus de la aplicación web solicitante, que será granted, denied o default. Reemplazado por PushManager.permissionState() (en-US).

PushManager.register() (en-US) Obsoleto

Se suscribe a una suscripción push. Reemplazado por PushManager.subscribe() (en-US).

PushManager.registrations() (en-US) Obsoleto

Recupera suscripciones push existentes. Reemplazado por PushManager.getSubscription() (en-US).

PushManager.unregister() (en-US) Obsoleto

Anula el registro y elimina un extremo de suscripción especificado. En la API actualizada, se anula el registro de una suscripción llamando al método PushSubscription.unsubscribe() (en-US).

Example

js

this.onpush = (event) => {
  console.log(event.data);
  // Desde aquí podemos escribir los datos en una IndexedDB, enviarlos
  // a cualquier ventana abierta, mostrar una notificación, etc.
};

navigator.serviceWorker
  .register("serviceworker.js")
  .then((serviceWorkerRegistration) => {
    serviceWorkerRegistration.pushManager.subscribe().then(
      (pushSubscription) => {
        console.log(pushSubscription.endpoint);
        // Los detalles de suscripción push que necesita el servidor
        // de aplicaciones ahora están disponibles y se pueden enviar
        // mediante, por ejemplo, XMLHttpRequest.
      },
      (error) => {
        console.error(error);
      },
    );
  });

Especificaciones

Specification
Push API
# pushmanager-interface

Compatibilidad con navegadores

BCD tables only load in the browser

Véase también