문제 상황을 알려주세요!


문제가 된 코드

if ('Notification' in window) {
  Notification.requestPermission().then((newPermission) => {
    setPermission(newPermission);
  });
}

에러 상황

문제 원인이 무엇인가요?


에러가 발생한 이유

해결


해결 된 코드

const isPWA = window.matchMedia('(display-mode: standalone)').matches;

if ('Notification' in window || isPWA) {
  Notification.requestPermission().then((newPermission) => {
    setPermission(newPermission);
  });
}

해결 방법 설명

  1. window.matchMedia('(display-mode: standalone)').matches를 사용해 PWA 환경인지 확인
  2. PWA 환경이 아닐 경우, iOS에서 Notification API를 호출하지 않도록 처리