Cuando se produce un evento pushsubscriptionchange
, es una oportunidad para que un desarrollador
volva a suscribir al usuario a los mensajes push. Uno de los problemas de esto es que, para volver a suscribir a un usuario, el desarrollador debe mantener el applicationServerKey
(y cualquier otra opción de subscribe()
) sincronizado entre el código JavaScript de la página web y su trabajador de servicio.
En Chrome 54 y versiones posteriores, ahora puedes acceder a las opciones a través del parámetro de opciones en un objeto de suscripción, conocido como PushSubscriptionOptions.
Puedes copiar y pegar el siguiente fragmento de código en simple-push-demo para ver cómo se ven las opciones. El código simplemente obtiene la suscripción actual y imprime subscription.options
.
=======
navigator.serviceWorker.ready.then(registration => {
return registration.pushManager.getSubscription();
})
.then(subscription => {
if (!subscription) {
console.log('No subscription 😞');
return;
}
console.log('Here are the options 🎉');
console.log(subscription.options);
});
Con esta pequeña información, puedes volver a suscribir a un usuario en el evento pushsubscriptionchange de la siguiente manera:
self.addEventListener('pushsubscriptionchange', e => {
e.waitUntil(registration.pushManager.subscribe(e.oldSubscription.options)
.then(subscription => {
// TODO: Send new subscription to application server
}));
});
Es un pequeño cambio que será muy útil en el futuro.