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 objetoPushSubscription
(en-US) que contiene detalles de una suscripción existente. Si no existe una suscripción existente, esto se resuelve en un valornull
. PushManager.permissionState()
(en-US)-
Devuelve un
Promise
que resuelve el estado de permiso delPushManager
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 objetoPushSubscription
(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 enPushPermissionStatus
de la aplicación web solicitante, que serágranted
,denied
odefault
. Reemplazado porPushManager.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