Estás leyendo la versión en inglés del artículo porque aún no existe una traducción para este idioma. ¡Ayúdanos a traducir este artículo!
Esta es una tecnología experimental
Comprueba la Tabla de compabilidad de navegadores cuidadosamente antes de usarla en producción.
The PushManager
interface of the Push API provides a way to receive notifications from third-party servers as well as request URLs for push notifications.
This interface is accessed via the ServiceWorkerRegistration.pushManager
property.
Note: This interface replaces functionality previously offered by the obsolete PushRegistrationManager
interface.
Properties
None.
Methods
PushManager.getSubscription()
- Retrieves an existing push subscription. It returns a
Promise
that resolves to aPushSubscription
object containing details of an existing subscription. If no existing subscription exists, this resolves to anull
value. PushManager.permissionState()
- Returns a
Promise
that resolves to the permission state of the currentPushManager
, which will be one of'granted'
,'denied'
, or'default'
. PushManager.subscribe()
- Subscribes to a push service. It returns a
Promise
that resolves to aPushSubscription
object containing details of a push subscription. A new push subscription is created if the current service worker does not have an existing subscription.
Deprecated methods
PushManager.hasPermission()
- Returns a
Promise
that resolves to thePushPermissionStatus
of the requesting webapp, which will be one ofgranted
,denied
, ordefault
. Replaced byPushManager.permissionState()
. PushManager.register()
- Subscribes to a push subscription. Replaced by
PushManager.subscribe()
. PushManager.registrations()
- Retrieves existing push subscriptions. Replaced by
PushManager.getSubscription()
. PushManager.unregister()
- Unregisters and deletes a specified subscription endpoint. In the updated API, a subscription is unregistered by calling the
PushSubscription.unsubscribe()
method.
Example
this.onpush = function(event) { console.log(event.data); // From here we can write the data to IndexedDB, send it to any open // windows, display a notification, etc. } navigator.serviceWorker.register('serviceworker.js').then( function(serviceWorkerRegistration) { serviceWorkerRegistration.pushManager.subscribe().then( function(pushSubscription) { console.log(pushSubscription.subscriptionId); console.log(pushSubscription.endpoint); // The push subscription details needed by the application // server are now available, and can be sent to it using, // for example, an XMLHttpRequest. }, function(error) { // During development it often helps to log errors to the // console. In a production environment it might make sense to // also report information about errors back to the // application server. console.log(error); } ); });
Specifications
Specification | Status | Comment |
---|---|---|
Push API La definición de 'PushManager' en esta especificación. |
Working Draft | Initial definition. |
Browser compatibility
We're converting our compatibility data into a machine-readable JSON format.
This compatibility table still uses the old format,
because we haven't yet converted the data it contains.
Find out how you can help!
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 42.0 | 44.0 (44.0) | Sin soporte | ? | Sin soporte |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
Basic support | Sin soporte | Sin soporte | Sin soporte | Sin soporte | Sin soporte | Sin soporte | Sin soporte | 42.0 |