
- 경로를 보여주는 페이지에서 네비연동 버튼을 클릭했을 때, 네이버 지도 앱으로 이동하는 동작이 필요했다.
- 웹앱으로 진행되었기 때문에, iOS와 AOS의 구분이 필요했다.
네비연동 버튼을 클릭했을 때, 만약 네이버 지도 앱이 다운로드가 되어있지 않다면 앱스토어로 이동해야 했기 때문에 해당 정보가 필요했다.
navigator.userAgent이다.NavigatorID.userAgent 속성을 통해 사용자 에이전트 문자열에 접근할 수 있다.Navigator: userAgent propertynavigator.userAgentread-only 속성으로, 현재 브라우저의 사용자 에이전트 문자열을 반환한다.about:config에서 general.useragent.override 값을 설정하여 사용자 에이전트 문자열을 변경할 수 있다.navigator.userAgent에서 반환한다.Navigator 객체에서 제공하는 다양한 메소드로 접근할 수 있다.alert(window.navigator.userAgent);
크롬으로 열면 이러한 사용자 에이전트 문자열이 나오는 것을 확인할 수 있다.

모바일로 열었을 때는, 브라우저에 따라 나오는 문자열이 조금 차이가 있었다.
| 아이폰 + 사파리 | 아이폰 + 크롬 |
|---|---|
![]() | ![]() |
const isAndroid = /android/i.test(navigator.userAgent);
const isiOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
if (isAndroid) alert("안드로이드!")
else if (isiOS) alert("iOS!");
isAndroid
userAgent에서 대소문자를 구별하지 않고(플래그 i) android를 포함하고 있으면 "안드로이드" alert를 띄우게 했다.
isiOS
isAndroid와 마찬가지로 userAgent 문자열에 대소문자를 구별하지 않고 iPhone, iPad, iPod을 포함하고 있다면 "iOS" alert를 띄우게 했다.
결과
현재 안드로이드 기기를 가지고 있지 않아서 안드로이드 테스트를 진행하지 못했으나, 아이폰의 경우 "iOS" alert가 작동하는 것을 확인할 수 있었다.
아이폰도 안드로이드도 설정한 alert가 작동하는 것을 확인했다!
| iOS | AOS |
|---|---|
![]() | ![]() |
Navigator: userAgent propertyLast Update 2024.11.17