Tùy chọn của PushSubscription

Khi sự kiện pushsubscriptionchange xảy ra, nhà phát triển có thể đăng ký lại cho người dùng để sử dụng phương thức đẩy. Một trong những điểm khó khăn của việc này là để đăng ký lại người dùng, 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à trình chạy dịch vụ của họ.

Trong Chrome 54 trở lên, bạn hiện có thể truy cập vào các tuỳ chọn này thông qua tham số tuỳ chọn trong một đối tượng gói thuê bao, được gọi là PushSubscriptionOptions.

Bạn có thể sao chép và dán đoạn mã sau đây vào simple-push-demo để xem các tuỳ chọn đó có hình thức như thế nào. Mã này chỉ lấy gói thuê bao hiện tại và in ra 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);  
});

Dựa vào thông tin nhỏ này, bạn có thể đăng ký lại cho 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ẽ cực kỳ hữu ích trong tương lai.