development

브라우저가 Android 또는 iOS 기기에서 실행 중인지 감지

big-blog 2020. 11. 13. 23:48
반응형

브라우저가 Android 또는 iOS 기기에서 실행 중인지 감지


사용자가 Android 또는 iOS 브라우저에서 보는지 여부에 따라 모바일 웹 사이트에서 일부 버튼과 텍스트를 변경해야합니다. 확인을 수행하는 신뢰할 수있는 방법이 있습니까?


var isMobile = {
    Windows: function() {
        return /IEMobile/i.test(navigator.userAgent);
    },
    Android: function() {
        return /Android/i.test(navigator.userAgent);
    },
    BlackBerry: function() {
        return /BlackBerry/i.test(navigator.userAgent);
    },
    iOS: function() {
        return /iPhone|iPad|iPod/i.test(navigator.userAgent);
    },
    any: function() {
        return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());
    }
};

navigator.useragent속성을 사용하여 useragent-string을 가져 와서 구문 분석하고 OS를 감지합니다.

다음 은이를 수행하는 방법에 대한 한 가지 예입니다.

최신 정보:

이 질문의 인기로 인해 답변에 추가 정보를 추가 할 것이라고 생각했습니다.

일반적으로 브라우저 스니핑은 가장 좋은 방법이 아닙니다. 왜? 글쎄요, 여러 가지 이유가 있지만 여기에 두 가지 좋은 이유가 있습니다.

  1. 사람들이 브라우저 스니핑으로 전환하는 거의 모든 경우에 기능 감지가 더 나은 옵션이 될 것 입니다. 사용자가 사용중인 OS / 브라우저에 따라 조치를 취하는 것이 적절할 수있는 드문 경우가 있지만 대부분의 경우 Modernizr 와 같은 라이브러리를 사용하여 특정 기능에 대한 지원을 감지하는 것이 더 나은 방법입니다. 사이트 / 애플리케이션을 지원하는 기능이 아닌 특정 브라우저에 맞게 조정하려는 시도는 미끄러운 경사입니다. 대신 브라우저가 필요한 기능을 지원하는지 확인하고 지원이 부족할 때 폴리 필하거나 멋진 대체 기능을 제공합니다.
  2. 브라우저 스니핑은 매우 복잡 합니다. 왜? 거의 모든 브라우저가 사용자 에이전트 문자열에 있거나 특정 식별을 허용하기에 충분한 정보가 없기 때문입니다.

즉, 브라우저 / OS 감지를 정말로 사용해야한다면 바퀴를 재발 명하지 말고 스스로 시도하지 마십시오. 고통스럽고 모호한 경고의 세계에있을 것입니다! OS, 브라우저, 렌더링 엔진 및 장치에 대한 정보가 포함 된 편리한 JavaScript 개체를 제공하는 WhereBrowser 와 같은 라이브러리를 사용하는 것이 좋습니다 .


네비게이터 객체 : http://www.w3schools.com/js/js_browser.asp 를 사용한 다음 네비게이터의 속성을 기반으로하는 if 문을 사용할 수 있습니다.


나는 이것을 잠시 사용했습니다. 모바일 장치를 기반으로 true 또는 false를 반환하는 간단한 검사입니다.

var isMobile = (/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Windows Phone/i.test(navigator.userAgent)) ? true : false;

참고 URL : https://stackoverflow.com/questions/12606245/detect-if-browser-is-running-on-an-android-or-ios-device

반응형