ตัวเลือกของการสมัครรับข้อมูลแบบพุช

เมื่อเหตุการณ์ pushsubscriptionchange เกิดขึ้น นี่เป็นโอกาสให้นักพัฒนาแอปทำให้ผู้ใช้สมัครรับ Push อีกครั้ง ปัญหาอย่างหนึ่งของวิธีนี้คือ หากต้องการติดตามผู้ใช้อีกครั้ง นักพัฒนาแอปต้องซิงค์ applicationServerKey (และตัวเลือก subscribe() อื่นๆ) ระหว่าง JavaScript ของหน้าเว็บกับ Service Worker

ใน Chrome 54 ขึ้นไป คุณสามารถเข้าถึงตัวเลือกผ่านพารามิเตอร์ options ในออบเจ็กต์การสมัครใช้บริการที่รู้จักกันในชื่อ PushSubscriptionOptions

คุณสามารถคัดลอกและวางข้อมูลโค้ดต่อไปนี้ลงใน simple-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  
    }));  
});

การเปลี่ยนแปลงเล็กๆ น้อยๆ นี้มีประโยชน์อย่างยิ่งในอนาคต