JavaScript를 사용하여 모바일 장치, OS를 감지하는 방법
이 블로그에서는 JavaScript를 사용하여 모바일 장치나 브라우저 또는 OS를 감지하고 사용자를 모바일 응용 프로그램이나 웹 응용 프로그램으로 자동 리디렉션하는 방법을 배울 것입니다.
내용의 테이블
따라서 시간을 낭비하지 않고 튜토리얼을 시작하겠습니다.
1.JavaScript의 navigator 객체란?
To get the bowser details or device details, JavaScript stores these information in the navigator
property of window
object.
navigator
object contains lots of information about the browser, some of the most used/ important information we will see later in this tutorial.
navigator
object is.if you directly want to see how to get the detect mobile and desktop then you can skip this part can click here
navigator
개체에는 브라우저에 대한 정보가 포함되어 있습니다.(참고: 모든 주요 브라우저를 제외한 모든 브라우저가 이 개체를 지원하는 것은 아닙니다.)
2. 가장 중요한 속성 중 일부는,
-
Clipboard
- used to copy something to clipboard and paste it any where (Ex. while making Click to copy) -
connection
-
language
- shows the language of browser. -
geolocation
- Returns a Geolocation object that can be used to locate the user's position -
onLine
- check whether the browser is online -
platform
- machine type where browser is installed. -
cookieEnabled
- it returns a Boolean value that indicates whether cookies are enabled or not. -
serviceWorker
- mainly used to checks if the browser supports service workers -
vibrate(time)
- make device vibrate if it support that -
userAgent
- will see below -
userAgentData
- will see below
I think this much information about the navigator object is enough to understand what is navigator
object and what all information it contains
Now, let see
3.모바일 장치 또는 브라우저 또는 OS를 감지하는 방법.
To get these information we will use the property userAgent
, userAgentData
of navigator object.
navigator.userAgent
userAgent
will give you the information of lot of things like device name, browser name, OS version but the information returned by browser is not much understandable.
So, we can understand these returned information from the hack.
to get OS version and name you can follow the below hack,
if (window.navigator.userAgent.indexOf("Windows NT 10.0")!= -1)
{console.log("OS is Windows 10");}
if (window.navigator.userAgent.indexOf("Windows NT 6.3") != -1)
{console.log("OS is Windows 8.1");}
if (window.navigator.userAgent.indexOf("Windows NT 6.2") != -1)
{console.log("OS is Windows 8");}
if (window.navigator.userAgent.indexOf("Windows NT 6.1") != -1)
{console.log("OS is Windows 7");}
if (window.navigator.userAgent.indexOf("Windows NT 6.0") != -1)
{console.log("OS is Windows Vista");}
if (window.navigator.userAgent.indexOf("Windows NT 5.1") != -1)
{console.log("OS is Windows XP");}
if (window.navigator.userAgent.indexOf("Windows NT 5.0") != -1)
{console.log("OS is Windows 2000");}
if (window.navigator.userAgent.indexOf("Mac") != -1)
{console.log("OS is Mac/iOS");}
if (window.navigator.userAgent.indexOf("X11") != -1)
{console.log("OS is UNIX");}
if (window.navigator.userAgent.indexOf("Linux")!= -1)
{console.log("OS is Linux");}
to check mobile device info you can follow below hack,
function detectMobile() {
const toMatch = [
/Android/i,
/webOS/i,
/iPhone/i,
/iPad/i,
/iPod/i,
/BlackBerry/i,
/Windows Phone/i
];
return toMatch.some((toMatchItem) => {
return navigator.userAgent.match(toMatchItem);
});
}
userAgent
is much more complex to get these details.
So we have one more property i.e.
navigator.userAgentData
This gives the information about browser and mobile detection in 1 line.
navigator.userAgentData.mobile; //returns true or false, depending on the condition
NOTE: Both of these 2 ways are not recommended to be use in the production.
So lets now see the best way to do so,
4. 더 나은 방법은,
usingmatchMedia
it gives you more flexibility to decide that after what screen size you want to deal it as mobile or desktop and lot of other info,
please check official doc from MDN, MDN - Media Query
MDN- Media Query Features
About Pointer
function DetectDevice() {
let isMobile = window.matchMedia || window.msMatchMedia;
if(isMobile) {
let match_mobile = isMobile("(pointer:coarse)");
return match_mobile.matches;
}
return false;
}
DetectDevice() //return true if mobile, and return false if desktop
또한 matchMedia는 장치를 모바일(CSS Media Query와 동일)로 처리하고 훨씬 더 유연한
navigator
개체로 처리할 화면 크기를 선택할 수 있는 권한을 제공합니다.if (window.matchMedia("only screen and (max-width: 760px)")) {
//do something you want to for the screen size less than 760
}
window
및 screen
개체를 사용하여 이를 달성할 수도 있지만, 이는 더 오래된 방식이며 더 큰 응용 프로그램에서는 훨씬 복잡합니다.if(window.innerWidth > 768){//do something}
if(screen.width > 768){//do something}
여기까지 읽어주셔서 감사합니다. JavaScript를 사용하여 모바일 화면 및 OS를 감지하는 방법에 대한 간략한 소개입니다.
이 기사가 유용하다고 생각되면 이 기사를 좋아하고 공유하십시오. 누군가는 유용하다고 생각할 수도 있습니다.
기술적으로 부정확한 것을 발견하면 아래에 의견을 보내주십시오.
당신을 위해 좋은 정보를 읽을 수 있기를 바랍니다.
자세히 알아보려면 방문https://www.capscode.in/blog...
다음 블로그 기사에서 뵙겠습니다. 조심해!!
감사,
Reference
이 문제에 관하여(JavaScript를 사용하여 모바일 장치, OS를 감지하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/capscode/how-to-detect-mobile-device-os-using-javascript-4l9j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)