Pushसदस्यता के विकल्प

जब pushsubscriptionchange इवेंट होता है, तो डेवलपर के पास पुश करने के लिए उपयोगकर्ता की फिर से सदस्यता लेने का मौका होता है. इसकी एक वजह यह है कि किसी उपयोगकर्ता की फिर से सदस्यता लेने के लिए, डेवलपर को applicationServerKey (और किसी भी दूसरे subscribe() विकल्प) को वेब पेज के JavaScript और उसके सर्विस वर्कर के बीच सिंक रखना होगा.

Chrome 54 और उसके बाद के वर्शन में अब सदस्यता ऑब्जेक्ट में विकल्प पैरामीटर के ज़रिए, विकल्पों को ऐक्सेस किया जा सकता है. इसे PushSubscriptionOptions के नाम से जाना जाता है.

नीचे दिए गए कोड स्निपेट को कॉपी करके, सादे-push-demo में कॉपी करके देखा जा सकता है. यह देखा जा सकता है कि विकल्प कैसे दिखते हैं. कोड सिर्फ़ मौजूदा सदस्यता लेता है और 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);  
});

इस छोटी जानकारी की मदद से, pushsubscriptionchange इवेंट में किसी उपयोगकर्ता की फिर से सदस्यता ली जा सकती है. इस तरह के इवेंट में:

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

यह एक छोटा सा बदलाव है, जो आने वाले समय में बहुत काम का होगा.