Opzioni di una sottoscrizione Push

Matt Gaunt

Quando si verifica un evento pushsubscriptionchange, uno sviluppatore offre l'opportunità di iscrivere di nuovo l'utente per il push. Uno dei punti dolenti di questo processo è che, per iscrivere di nuovo un utente, lo sviluppatore deve mantenere applicationServerKey (e qualsiasi altra opzione subscribe()) sincronizzati tra il codice JavaScript della pagina web e il service worker.

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

Puoi copiare e incollare il seguente snippet di codice in simple-push-demo per vedere l'aspetto delle opzioni. Il codice recupera l'abbonamento attuale 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 iscrivere di nuovo un utente all'evento pushsubscriptionchange in questo modo:

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à estremamente utile in futuro.