요약)
더 이상 플래그/실험적 기능이 필요하지 않습니다.
웹 푸시를 지원하력 할 때 가장 큰 문제는 iOS 16에서 API가 기본적으로 비활성화되어 있다는 점입니다. 다행히 iOS17부터는 기본적으로 활성화되어 있습니다.
홈 화면에 추가는 여전히 필요하며, 여전히 알려지지 않았습니다.
사용자가 홈 화면에 추가되어 있거나, 홈 화면에서 실행된 웹앱만이 웹 푸시를 활성화하는 데 필요한 모든 API를 활용할 수 있다.
=> 남용 방지 but 사용성에 대한 효과를 제한
이제 (대부분) 기능 탐지가 가능합니다.
iOS 16의 웹 푸시는 위의 제한 사항이 적용되었을 때 API 사용이 가능하지만 효과적으로 구현할 수 없었습니다. 다행히 이 문제는 해결된 것으로 보입니다.
// 서비스 워커가 지원됩니다
if(!"serviceWorker" in navigator){
return;
}
// 웹 푸시가 지원됩니다
const registration = await navigator.serviceWorker.ready;
if(!"pushManager" in registration){
return
}
사용자에게 이 기능을 사용할 수 있다는 안내를 제공하려는 경우엔 navigator.serviceWorker
는 존재하지만 registration.pushManager
는 존재하지 않으므로 코드에 몇 가지 검사를 추가해야 합니다. 하지만 다른 브라우저에서는 서비스 워커만 지원하고 웹 푸시는 지원하지 않기 때문에, 이를 감지할 수 있는 명확한 방법을 찾지 못해 브라우저 스니핑에 의존하여 도움말 컨텍스트를 표시할 수 있었습니다.
찾아 볼 키워드
웹 푸시 , 서비스 워커, 푸시매니저, 브라우저 스니핑
번역문)
https://velog.io/@eunbinn/web-push-ios17?utm_source=substack&utm_medium=email
'What I Read' 카테고리의 다른 글
[ 번역 ] Boolean in JavaScript and TypeScript (0) | 2023.10.29 |
---|---|
웹 푸시 알림 Web Push Notification 란? (0) | 2023.10.24 |
HTMX vs React (0) | 2023.10.24 |
[ Korean FE Article ] Tailwind CSS에서 혼란을 방지하기 위한 5가지 모범 사례 (0) | 2023.10.24 |
[ 요즘IT ] 새로 등장한 '리액트 서버 컴포넌트' 이해하기 (0) | 2023.10.21 |