เมื่อเหตุการณ์ pushsubscriptionchange
เกิดขึ้น นักพัฒนาแอปจะสมัครใช้บริการผู้ใช้อีกครั้งเพื่อพุช ปัญหาหนึ่งของปัญหานี้คือการสมัครใช้บริการผู้ใช้อีกครั้ง นักพัฒนาแอปต้องซิงค์ applicationServerKey
(และตัวเลือกอื่นๆ ของ subscribe()
) ระหว่าง JavaScript ของหน้าเว็บกับ Service Worker
ใน Chrome 54 ขึ้นไป คุณจะเข้าถึงตัวเลือกผ่านพารามิเตอร์ตัวเลือกในออบเจ็กต์การสมัครใช้บริการที่เรียกว่า 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
}));
});
นี่เป็นการเปลี่ยนแปลงเล็กๆ น้อยๆ ซึ่งจะเป็นประโยชน์อย่างยิ่งในอนาคต