כשמתרחש אירוע 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
}));
});
זה שינוי קטן שיהיה מאוד שימושי בעתיד.