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();
반응형
광고차단(애드블록)프로그램이나 브라우저를 사용중이시면 프로그램을 비활성화이나 블로그 주소를 예외 처리 해주시면 광고가 노출됩니다. 귀찮고 번거롭겠지만 광고 클릭은 저에게는 큰 힘이 됩니다. 🙇🏻‍♂️🙇🏻‍♀️
제 블로그의 모든 글은 제가 직접 작성 하고 다른 글을 참고할 때는 이전 글보다 읽기 편하게 수정해서 작성하고 있습니다. 커피 한잔 사먹고 더 열심히 좋은글로 보답하겠습니다.
오늘도 제 블로그에 와 주셔서 감사합니다. :)
//