pushsubscriptionchange
이벤트가 발생하면 개발자가 푸시를 위해 사용자를 다시 구독할 수 있습니다. 이 문제의 고충 중 하나는 사용자를 다시 구독하려면 개발자가 applicationServerKey
및 기타 subscribe()
옵션을 웹페이지의 JavaScript와 서비스 워커 간에 동기화 상태로 유지해야 한다는 것입니다.
이제 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
}));
});
작은 변화로 앞으로 매우 유용할 것입니다.