เมื่อเหตุการณ์ 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
}));
});
การเปลี่ยนแปลงเล็กๆ น้อยๆ นี้มีประโยชน์อย่างยิ่งในอนาคต