Opzioni di una sottoscrizione Push

Matt Gaunt

Quando si verifica un evento pushsubscriptionchange, è un'opportunità per uno sviluppatore di abbonare nuovamente l'utente alle notifiche push. Uno dei problemi è che, per abbonare nuovamente un utente, lo sviluppatore deve mantenere sincronizzato il applicationServerKey (e eventuali altre opzioni subscribe()) tra il codice JavaScript della pagina web e il suo servizio worker.

In Chrome 54 e versioni successive, ora puoi accedere alle opzioni tramite il parametro options in un oggetto di abbonamento, noto come PushSubscriptionOptions.

Puoi copiare e incollare il seguente snippet di codice in simple-push-demo per vedere come sono le opzioni. Il codice recupera semplicemente l'abbonamento corrente e stampa 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);  
});

Con questa piccola informazione, puoi registrare di nuovo un utente nell'evento pushsubscriptionchange come segue:

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

Si tratta di una piccola modifica che sarà molto utile in futuro.