Optionen eines PushSubscription-Abos

Matt Gaunt

Wenn ein pushsubscriptionchange-Ereignis auftritt, kann ein Entwickler den Nutzer wieder für Push-Benachrichtigungen abonnieren. Ein Nachteil dabei ist, dass der Entwickler die applicationServerKey (und alle anderen subscribe()-Optionen) zwischen dem JavaScript der Webseite und dem Service Worker synchronisieren muss, um einen Nutzer wieder zu abonnieren.

In Chrome 54 und höher kannst du jetzt über den Optionsparameter in einem Aboobjekt, PushSubscriptionOptions, auf die Optionen zugreifen.

Sie können das folgende Code-Snippet in simple-push-demo kopieren und einfügen, um sich die Optionen anzusehen. Der Code ruft einfach das aktuelle Abo ab und gibt subscription.options aus.

=======

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

Mit dieser kleinen Information kannst du einen Nutzer im Ereignis pushsubscriptionchange wieder abonnieren:

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

Es ist eine kleine Änderung, die in Zukunft sehr nützlich sein wird.