PushSubscription의 옵션

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  
    }));  
});

작은 변화로 앞으로 매우 유용할 것입니다.