티스토리 뷰
최근 개발 중 PC, MOBILE 을 구분하여 처리하는 로직에서 오류가 발생하였습니다.
결제 모듈을 호출하는 부분에서 PC 모듈을 호출해야 하지만 MOBILE 모듈을 호출하여 발생한 문제였습니다.
지금까지 잘 되던게 왜 갑자기 안될까?
의문을 갖고 PC, MOBILE 구분 함수를 찾아보았습니다.
함수는 아래와 같이 코딩되어 있었습니다.
(인터넷에서 많이 볼 수 있는 코드죠..)
-- JavaScript
var filter = "win16|win32|win64|mac";
var vWebType = "";
if (navigator.platform ) {
if (filter.indexOf(navigator.platform.toLowerCase()) < 0) {
vWebType = "MOBILE";
} else {
vWebType = "PC";
}
}
-- 사용자 User-Agent 는 아래와 같았습니다.
mozilla/5.0 (macintosh; intel mac os x 10_12_3) applewebkit/537.36 (khtml, like gecko) chrome/56.0.2924.87 safari/537.36
예전에는 User-Agent 로 MOBILE 인지 아닌 지 체크를 많이 했었는데 (아닌가요..? -.-;;) 모바일 디바이스의 종류가 매우 방대해짐에 따라
PC, MOBILE 체크 시에 MOBILE 인지 아닌지 보다는 PC 인지 아닌지 여부로 체크를 하는 게 보편화된 것 같습니다.
아무튼 지금까지는 위 처럼 사용되는 로직에 문제가 없다가 왜 갑자기 발생된 걸까요?
찾아보니 PC 종류 하나가 빠져있었습니다.
Javascript Navigator 의 Platform 정보로 조회 되는 PC 기기는 아래 5가지 종류입니다.
Win16 : 16비트 윈도위기반 컴퓨터
Win32 : 32비트 윈도위기반 컴퓨터
Win64 : 64비트 윈도위기반 컴퓨터
MacIntel : 인텔CPU 를 가진 매킨토시 컴퓨터
Mac : 매킨토시컴퓨터
위의 5가지의 디바이스 정도가 PC 로 접속 시 조회 가능한 Navigator Platform 의 값입니다.
이 외의 것은 모바일로 봐도 될 거라고 합니다.
이렇게 찾아보니 하나가 빠졌더군요.
MacIntel : 인텔CPU 를 가진 매킨토시 컴퓨터
.... 매킨토시는 매킨토신데 CPU 가 인텔 꺼랍니다..
var filter = "win16|win32|win64|mac|macintel";
로 변경하여 처리 완료되었네요.
참고로 Navigator Object 의 Properties 관련 내용 메모해 보겠습니다.
콘솔이나 알럿으로 확인 가능하겠습니다.
ex: console.log(navigator.userAgent);
navigator.appCodeName : 웹브라우저 코드이름
navigator.appName : 웹브라우저 이름
navigator.appVersion : 웹브라우저 버전
navigator.cookieEnabled : 웹브라우저 쿠키 사용 가능 유무
navigator.language : 웹브라우저 언어
navigator.onLine : 사용자 온라인 상태 여부
navigator.platform : 플랫폼
navigator.userAgent : 브라우저 구분값(웹브라우저 이름 전체)
'프로그래밍' 카테고리의 다른 글
자바스크립트 클로저, JavaScript Closure (0) | 2017.05.14 |
---|---|
HandlerExceptionResolver 사용하여 Exception 페이지 처리에 대해 유연하게 대응하기 (0) | 2017.05.09 |
Javascript 생년월일로 나이 구하기. (+Oracle 추가) (0) | 2017.04.03 |
Unsupported major.minor version 51.0 오류 (0) | 2017.03.28 |
Javascript Promise, Deferred (0) | 2017.03.08 |
- Total
- Today
- Yesterday
- 쿠스코
- 애드센스
- jQuery
- 우유니
- Namibia
- Oracle
- 족발
- 성스러운 계곡
- aguas calientes
- 나미비아
- Cusco
- 볼리비아
- 햄버거
- 빈트후크
- 남미 저가항공
- Uyuni
- 아구아스 칼리엔테스
- 성계 투어
- 킹덤 호텔
- 캄보디아
- 빅토리아폴스
- Cambodia
- 남미
- 칼라마
- 푸에르토 나탈레스
- 칠레
- 후마리
- 마추피추
- 토레스 델 파이네
- calama
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |