Gdy nastąpi zdarzenie pushsubscriptionchange, deweloper może ponownie zasubskrybować powiadomienia push. Jednym z problemów jest to, że aby ponownie zasubskrybować użytkownika, deweloper musi zachować applicationServerKey (i wszystkie inne opcje subscribe()) w synchronizacji między kodem JavaScript strony internetowej a jej usługą wtyczką.
W Chrome 54 i nowszych możesz uzyskać dostęp do opcji za pomocą parametru options w obiekcie subskrypcji o nazwie PushSubscriptionOptions.
Aby zobaczyć, jak wyglądają te opcje, możesz skopiować i wklejć ten fragment kodu w pliku simple-push-demo. Kod pobiera bieżącą subskrypcję i wypisuje ją w funkcji 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);  
});
Dzięki tym informacjom możesz ponownie zasubskrybować użytkownika w zdarzeniu pushsubscriptionchange w ten sposób:
self.addEventListener('pushsubscriptionchange', e => {  
    e.waitUntil(registration.pushManager.subscribe(e.oldSubscription.options)  
    .then(subscription => {  
        // TODO: Send new subscription to application server  
    }));  
});
To niewielka zmiana, która w przyszłości okaże się bardzo przydatna.