브라우저 & webview의 플랫폼이 iPad인지 확인하는 방법
문제
webview 혹은 웹브라우저가 구동되는 플랫폼이 iPad인지를 알고 싶은 경우, 보통 아래 코드를 사용한다. gpt도 이렇게 알려준다.
const isIpad = navigator.maxTouchPoints > 1 && /MacIntel/.test(navigator.platform);
하지만 위 코드는 Chrome 브라우저
에서는 동작하지 않는다. Chrome 브라우저
의 navigator.platform
은 iPad
이기 때문이다.
뿐만 아니라 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
Leave a comment