less than 1 minute read

문제

webview 혹은 웹브라우저가 구동되는 플랫폼이 iPad인지를 알고 싶은 경우, 보통 아래 코드를 사용한다. gpt도 이렇게 알려준다.

const isIpad = navigator.maxTouchPoints > 1 && /MacIntel/.test(navigator.platform);

하지만 위 코드는 Chrome 브라우저에서는 동작하지 않는다. Chrome 브라우저navigator.platformiPad이기 때문이다.

뿐만 아니라 navigator.platform은 deprecated 된 API다.

해결책

아래와 같은 함수를 만들어서 iPad인지 여부를 확인할 수 있다. 이렇게 하면 Chrome 브라우저에서도 잘 돌아간다.

const isIPadOS = () => {
  const haveTouchPoint =
    navigator.maxTouchPoints && navigator.maxTouchPoints > 1;

  const isiPadUserAgent =
    /Macintosh/i.test(navigator.userAgent) || /iPad/i.test(navigator.userAgent);

  return haveTouchPoint && isiPadUserAgent;
};

20250206

Tags:

Categories:

Updated:

Leave a comment