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.
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
.
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()
-
Recupera una suscripción push existente. Devuelve un objeto
Promise
que se resuelve en un objetoPushSubscription
que contiene detalles de una suscripción existente. Si no existe una suscripción existente, esto se resuelve en un valornull
. PushManager.permissionState()
-
Devuelve un
Promise
que resuelve el estado de permiso delPushManager
actual, que será'granted'
,'denied'
o'prompt'
. PushManager.subscribe()
-
Se suscribe a un servicio push. Devuelve un objeto
Promise
que se resuelve en un objetoPushSubscription
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()
Obsoleto-
Devuelve un
Promise
que se resuelve enPushPermissionStatus
de la aplicación web solicitante, que serágranted
,denied
odefault
. Reemplazado porPushManager.permissionState()
. PushManager.register()
Obsoleto-
Se suscribe a una suscripción push. Reemplazado por
PushManager.subscribe()
. PushManager.registrations()
Obsoleto-
Recupera suscripciones push existentes. Reemplazado por
PushManager.getSubscription()
. PushManager.unregister()
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()
.
Example
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