IT/JavsScript
안드로이드(Android), IOS 디바이스 구분하기
라임웨일
2021. 12. 23. 13:56
반응형
안드로이드(Android)와 IOS는 태어난 환경이 서로 다르기 때문에 같은 코드와 CSS 속성이 브라우저 엔진에서 다르게 랜더링 되어 화면에 우리가 예측한 값과 다르게 도출되는 경우가 발생합니다.
이 경우 사용자의 유저가 접속한 디바이스가 무엇인지 구분하여 안드로이드 유저에게는 안드로이드 화면이 노출되고 아이폰 유저에게는 아이폰 화면이 노출된다면 우리가 원하는 최적의 결과를 얻을 수 있습니다. 이 방법을 적용하기 위해선 사용자가 접속한 OS가 무엇인지 확인을 해야 합니다.
아래 스크립트를 적용하면 사용자가 접속한 OS에 따라 안드로이드, IOS, 그 외 세가지로 구분하여 body 태그에 해당 Class를 붙여주는 코드입니다.
감사합니다.
function deviceModel(){
let currentOS;
const mobile = (/iphone|ipad|ipod|android/i.test( navigator.userAgent.toLowerCase() ));
if (mobile)
{
const userAgent = navigator.userAgent.toLowerCase();
if (userAgent.search("android") > -1) {
currentOS = "android";
// 안드로이드 os 버젼 체크
const deviceAgent = 'Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; device Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Safari/533.1';
androidversion = parseFloat(deviceAgent.match(/Android\s+([\d\.]+)/)[1]);
document.querySelector('body').getAttribute('data-device', androidversion);
} else if ((userAgent.search("iphone") > -1) || (userAgent.search("ipod") > -1) || (userAgent.search("ipad") > -1)) {
currentOS = "ios";
} else { currentOS = "else"; }
}
else { currentOS = "nomobile"; }
document.querySelector('body').classList.add(currentOS);
}
deviceModel();
반응형