Push Abonelik Seçenekleri

Matt Gaunt

Bir pushsubscriptionchange etkinliği gerçekleştiğinde, geliştiricinin push için kullanıcının yeniden abone olması için bir fırsat olur. Bunun zorluklarından biri, bir kullanıcıya yeniden abone olmak için geliştiricinin applicationServerKey (ve diğer subscribe() seçeneklerini) web sayfasının JavaScript'i ile hizmet çalışanı arasında senkronize halde tutmasıdır.

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

Seçeneklerin nasıl görüneceğini incelemek için aşağıdaki kod snippet'ini kopyalayıp simple-push-demo içine yapıştırabilirsiniz. Kod yalnızca geçerli aboneliği alır ve subscription.options çıktısını verir.

=======

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 parçasıyla bir kullanıcıyı pushsubscriptionchange etkinliğinde aşağıdaki şekilde yeniden abone olabilirsiniz:

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

Bu, gelecekte son derece faydalı olacak küçük bir değişikliktir.