티스토리 뷰
최근 모바일 웹을 지원하는 반응형 웹을 만드는 경우가 많다.
미디어쿼리나 부트스트랩(Bootstrap)을 활용해서 쉽게 반응형 웹을 만들기도 하지만
경우에 따라서 직접 모바일 기기인지 체크해야 하는 때도 많다.
그렇다면 모바일 브라우저를 어떻게 구분해 낼까?
자바스크립트로 브라우저 크기 구분
먼저 브라우저의 크기로 구분해 내는 방법이 있다.
자바 스크립트의 document.body.clientWidth 값을 가져와서 사용하면 된다.
소스를 살펴보자
실제 몇몇 기기의 document.body.clientWidth의 값을 체크해 보면 다음과 같다.
디바이스 |
인치 |
세로모드 |
가로모드 |
아이폰 6 |
4.7인치 |
375 |
641 |
넥서스 5 |
4.95인치 |
346 |
574 |
넥서스 7 | 7인치 | 577 | 924 |
맥북에어 | 13인치 | 1080 |
위 값을 참조해서 800이란 숫자를 변경해서 사용하면 된다.
본인이 사용하는 기기의 viewport 크기, device 크기, document 크기 값을 알고 싶다면 다음 사이틀 한번 방문해 보기 바란다.
http://ryanve.com/lab/dimensions/
자바스크립트로 기기 구분
자바스크립트로 기기를 구분하기 위해서는 navigator.userAgent 값을 활용한다.
navigator 객체는 브라우저의 버전과 종류 등 웹브라우저의 정보를 제공하는 객체이다.
이 중 userAgent는 브라우저가 User-Agent HTTP 헤더에 넣어 전송하는 문자열로 appName과 appVersion을 비롯한 다양한 정보가 포함되어 있다.
원래 userAgent는 웹에서 넷스케이프 네비게이터와 인터넷 익스플로러의 크로스 브라우징을 위해 주로 사용되었다.
예전에 넷스케이프와 익스플로러가 상호호환이 안되어서 userAgent로 구분해서 코딩했던 기억이 난다.
모바일 환경이 되면서 각 모바일 기기에서는 userAgent에 단말기 정보를 포함해서 보내므로 이를 통해 구분하면 된다.
간단하게 아이폰과 안드로이드를 구분하는 소스는 다음과 같다.
실제 브라우저별 사용하는 userAgent의 값은 다음과 같다.
구분 |
userAgent 값 |
iPhone |
Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25 |
iPhone 크롬 |
Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/28.0.1500.16 Mobile/10B329 Safari/8536.25 (00236FCC-CE47-4774-9A79-DBBEEC199F9A) |
iPad |
Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25 |
Android(갤럭시 S4) |
Mozilla/5.0 (Linux; Android 4.2.2; ko-kr; SAMSUNG SHV-E300K/KKUAME7 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19 |
MacOS 사파리 |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/536.30.1 (KHTML, like Gecko) Version/6.0.5 Safari/536.30.1 |
MacOS 크롬 |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36 |
MacOS 파이어폭스 |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:22.0) Gecko/20100101 Firefox/22.0 |
Windows IE |
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; .NET4.0E; .NET4.0C) |
Windows 크롬 | Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36 |
Windows 파이어폭스 | Mozilla/5.0 (Windows NT 6.2; rv:22.0) Gecko/20100101 Firefox/22.0 |
'프로그래밍 > Web' 카테고리의 다른 글
부트스트랩 슬라이더 만들기 (0) | 2015.06.10 |
---|---|
HighChart를 활용한 웹/모바일 호환 그래프 만들기~ (0) | 2015.06.05 |
PHP를 활용하여 DB 내용을 JSON으로 출력하기 (0) | 2015.05.18 |
PHP4에서 JSON 설치하기 (0) | 2015.05.14 |
IE9 자바스크립트 이슈 해결 - F12 (개발자도구)를 누를때만 자바스크립트가 실행되는 문제 (2) | 2014.09.01 |
- Total
- Today
- Yesterday
- 클라우드
- 모바일
- 아이폰
- 맥
- SCORM
- 책
- mysql
- java
- 애플
- Hadoop
- 구글
- 통계
- XML
- 안드로이드
- 자바
- r
- 웹
- 하둡
- ms
- fingra.ph
- 마케팅
- 분석
- 자바스크립트
- 디자인
- 도서
- HTML
- 빅데이터
- 프로젝트
- 세미나
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |