Options d'un abonnement PushSubscription

Lorsqu'un événement pushsubscriptionchange se produit, le développeur peut réabonner l'utilisateur en mode push. L'un des inconvénients est que, pour réabonner un utilisateur, le développeur doit maintenir la synchronisation de applicationServerKey (et de toute autre option subscribe()) entre le code JavaScript de la page Web et son service worker.

Dans Chrome 54 et versions ultérieures, vous pouvez désormais accéder aux options via le paramètre d'options dans un objet d'abonnement, appelé PushSubscriptionOptions.

Vous pouvez copier et coller l'extrait de code suivant dans simple-push-demo pour voir à quoi ressemblent les options. Le code récupère simplement l'abonnement actuel et 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);  
});

Avec cette petite information, vous pouvez réabonner un utilisateur dans l'événement pushsubscriptionchange, comme suit:

self.addEventListener('pushsubscriptionchange', e => {  
    e.waitUntil(registration.pushManager.subscribe(e.oldSubscription.options)  
    .then(subscription => {  
        // TODO: Send new subscription to application server  
    }));  
});

C'est un petit changement qui sera très utile à l'avenir.