React Native를 다룰 줄 몰라 사용하게 된 PWA.
우리 서비스의 모토인 원클릭 인사이트 저장과 “리마인드” 를 위해 푸시 알림 기능이 필요해졌다.
네이티브 환경에서는 크게 어려울 것 없지만, pwa 환경에서 웹에서 동작하던 메커니즘을 그대로 모바일 환경에서도 적용할 수 있을지 확신이 들지 않았다.
web push notification의 동작원리를 제대로 알아보고 pwa 환경에서 동작할
serviceworker
가 있어야 한다.serviceworker?
Worker
란 스크립트로 생성되며, 스크립트 연산을 스레드에서 쉽게 할 수 있도록 도와주는 기능
async function registerServiceWorker () {
if (!('serviceWorker' in navigator)) return;
// get pre-registered serviceworker
let registration = await navigator.serviceWorker.getRegistration();
if (!registration) {
// register new serviceworker
registration = await navigator.serviceWorker.register('/service-worker.js');
}
}
Push API
PushManager.subscribe()
함수를 통해 push 알림을 구독(subscribe) 한다.