Khi sự kiện pushsubscriptionchange
xảy ra, nhà phát triển có cơ hội đăng ký lại người dùng để nhận thông báo đẩy. Một trong những điểm khó khăn của việc này là để người dùng đăng ký lại, nhà phát triển phải đồng bộ hoá applicationServerKey
(và mọi tuỳ chọn subscribe()
khác) giữa JavaScript của trang web và worker dịch vụ.
Trong Chrome 54 trở lên, bạn hiện có thể truy cập vào các tuỳ chọn thông qua tham số tuỳ chọn trong đối tượng thuê bao, được gọi là PushSubscriptionOptions.
Bạn có thể sao chép và dán đoạn mã sau vào simple-push-demo để xem các tuỳ chọn. Mã này chỉ cần lấy gói thuê bao hiện tại và in 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);
});
Với một chút thông tin này, bạn có thể đăng ký lại người dùng trong sự kiện pushsubscriptionchange như sau:
self.addEventListener('pushsubscriptionchange', e => {
e.waitUntil(registration.pushManager.subscribe(e.oldSubscription.options)
.then(subscription => {
// TODO: Send new subscription to application server
}));
});
Đây là một thay đổi nhỏ nhưng sẽ rất hữu ích trong tương lai.