Push Abonelik Seçenekleri

Matt Gaunt

Bir pushsubscriptionchange etkinliği gerçekleştiğinde geliştirici, kullanıcıyı push'e yeniden abone edebilir. Bunun en büyük sorunlarından biri, bir kullanıcıyı yeniden abone etmek için geliştiricinin applicationServerKey'yi (ve diğer subscribe() seçeneklerini) web sayfasının JavaScript'i ile hizmet işçisi arasında senkronize tutması gerektiğidir.

Chrome 54 ve sonraki sürümlerde, PushSubscriptionOptions olarak bilinen bir abonelik nesnesinin options parametresi aracılığıyla seçeneklere erişebilirsiniz.

Seçeneklerin nasıl göründüğünü görmek için aşağıdaki kod snippet'ini kopyalayıp simple-push-demo dosyasına yapıştırabilirsiniz. Kod, mevcut aboneliği alır ve subscription.options değerini yazdırır.

=======

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

Bu küçük bilgi sayesinde, pushsubscriptionchange etkinliğinde bir kullanıcıyı aşağıdaki gibi yeniden abone edebilirsiniz:

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

Bu küçük değişiklik, gelecekte çok faydalı olacaktır.