Optionen eines PushSubscription-Abos

Matt Gaunt

Wenn ein pushsubscriptionchange-Ereignis eintritt, bietet der Entwickler die Möglichkeit, den Nutzer noch einmal für Push zu abonnieren. Ein Problem besteht darin, dass der Entwickler das applicationServerKey (und alle anderen subscribe()-Optionen) zwischen dem JavaScript der Webseite und dem Service Worker synchron halten muss, um einen Nutzer wieder abonnieren zu können.

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

Sie können das folgende Code-Snippet kopieren und in simple-push-demo einfügen, um die Optionen zu sehen. Mit dem Code wird einfach das aktuelle Abo abgerufen und subscription.options ausgegeben.

=======

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 können Sie einen Nutzer im pushsubscriptionchange-Ereignis neu abonnieren:

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

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