Opciones de una PushSubscription

Cuando ocurre un evento pushsubscriptionchange, es una oportunidad para que un desarrollador vuelva a suscribir al usuario para recibir notificaciones de envío. Uno de los problemas de esto es que, para volver a suscribir a un usuario, el desarrollador debe mantener la applicationServerKey (y cualquier otra opción de subscribe()) sincronizada entre el código JavaScript de la página web y su service worker.

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, luego, 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 cambio pequeño que será muy útil en el futuro.