Opties van een PushAbonnement

Wanneer er een pushsubscriptionchange gebeurtenis plaatsvindt, is dit een mogelijkheid voor een ontwikkelaar om de gebruiker opnieuw te abonneren op push. Een van de pijnpunten hiervan is dat om een ​​gebruiker opnieuw te abonneren, de ontwikkelaar de applicationServerKey (en alle andere subscribe() opties) gesynchroniseerd moet houden tussen het JavaScript van de webpagina en zijn servicemedewerker.

In Chrome 54 en hoger heb je nu toegang tot de opties via de optieparameter in een abonnementsobject, bekend als PushSubscriptionOptions .

U kunt het volgende codefragment kopiëren en in de simple-push-demo plakken om te zien hoe de opties eruit zien. De code haalt eenvoudigweg het huidige abonnement op en drukt subscription.options af.

=======

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);  
});

Met dit kleine stukje informatie kunt u een gebruiker als volgt opnieuw abonneren in de pushsubscriptionchange- gebeurtenis:

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

Het is een kleine verandering, die in de toekomst super handig zal zijn.