iPad 인식 테스트 결과
방법1. 멀티터치 이벤트 구분방식
var isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) && !window.MSStream
- 멀티터치 스크린 지원하는지 안하는지로 iPad인지 아닌지 구분
- 참고 사이트 : https://stackoverflow.com/questions/9038625/detect-if-device-is-ios
테스트결과
- 아이패드 프로 iOS 13 이상 - iOS 모바일 정상 인식
- 아이패드 프로 iOS 12.X 버전 - iOS 모바일 정상 인식
- 아이폰X - iOS 모바일 정상 인식
- 맥북 - iOS 모바일 인식 안함
- 갤럭시 s10 - iOS 모바일 인식 안함
위 방법의 리스크
- 터치스크린이 지원되는 맥북이 나온다면 해당 맥북에서도 모바일 페이지로 노출될 가능성이 있음
- 현재는 터치스크린을 지원하는 맥북은 없는 것으로 확인 (애플에서도 아직 계획 없는걸로 보임)
- 하지만 노트북 시장의 추세가 터치스크린을 지원하는 것이라고 함
관련 기사 (2019. 12. 19 기사)
즉, 현재로선 위 방법을 통해 분기처리를 해도 될 것 같습니다. (애플이 갑자기 터치스크린을 지원하는 맥북을 출시안한다면..)
방법 2. 그래픽 드라이버 구분방식 (추측)
참고 사이트
- https://developer.mozilla.org/ko/docs/Web/API/WEBGL_debug_renderer_info
- https://github.com/CsabaConsulting/DetectMobileTest
위와 같이 iPad와 Mac을 구분하는 소스가 들어있습니다. 테스트 결과 iPad(iOS 13이상)를 구분하는 것으로 확인됐습니다.
장점
- 24일 전에 업데이트 기록이 있음 (최신)
단점
- 정확히 어떤 원리에 의해 iPad를 구분하는 것인지 파악이안됨
- 그래픽 드라이브 정보를 읽어서 구분하는 것이라고 추측
개발쪽과 상의가 필요할 것 같습니다.