Opcje PushSubscription

Gdy wystąpi zdarzenie pushsubscriptionchange, deweloper ma okazję do ponownego zasubskrybowania użytkownika na potrzeby push. Jednym z problemów jest to, że aby ponownie zasubskrybować użytkownika, deweloper musi utrzymywać synchronizację parametru applicationServerKey (i innych opcji subscribe()) między kodem JavaScript strony internetowej a skryptą service worker.

W Chrome 54 i nowszych wersjach możesz teraz uzyskać dostęp do opcji za pomocą parametru „options” w obiekcie subskrypcji o nazwie PushSubscriptionOptions.

Możesz skopiować i wkleić ten fragment kodu do simple-push-demo, aby zobaczyć, jak wyglądają dostępne opcje. Kod po prostu pobierze aktualną subskrypcję i wydrukuje 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);  
});

Podając tę krótką informację, możesz ponownie zasubskrybować użytkownika w zdarzeniu pushsubscriptionchange:

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 z pewnością przyda się w przyszłości.