티스토리 뷰
728x90
반응형
디바이스 정보 알아내기.
정리가 필요할 듯 ~
//사용법
getDeviceInfo( userAgentCheck() );
function userAgentCheck() {
var isIE, isIEver, ieFlag, isEDGE,
isChrome, chromeVer,
isFireFox, fireFoxVer,
isSafari, safariVer,
isOpera, operaVer,
isMac,
isIPhone,
isIPad,
isIOSver,
isAndroid,
androidVer,
androidMobile,
androidTablet,
browserInfo,
userAgent = window.navigator.userAgent.toLowerCase();
//console.log( userAgent )
// 브라우저 설정.
if (userAgent.indexOf("msie") != -1) {
isIE = true;
userAgent.match(/msie (\d+\.\d)/);
isIEver = parseFloat(RegExp.$1);
} else if (window.navigator.appName === 'Netscape' && userAgent.indexOf('trident') > -1) {
isIE = true;
ieFlag = 'trident/.*rv:';
var versionSort = '([0-9]{1,})(\\.{0,}[0-9]{0,1})';
var numCheckReg = new RegExp(ieFlag + versionSort);
if (numCheckReg.exec(userAgent) != null) {
isIEver = parseFloat(RegExp.$1);
} else {
isIEver = 11;
}
} else if (userAgent.indexOf('edge') > -1) {
isEDGE = true;
ieFlag = 'edge';
var matches = userAgent.match(/edge\/(\d+\.\d)/);
isIEver = ( matches !== null ) ? matches[1] : 0;
} else if (userAgent.indexOf("chrome") !== -1) {
isChrome = true;
userAgent.match(/chrome[\/ ]?(\d+\.\d+)/);
chromeVer = parseFloat(RegExp.$1);
} else if (userAgent.indexOf("firefox") !== -1) {
isFireFox = true;
userAgent.match(/firefox[\/ ]?(\d+\.\d+)/);
fireFoxVer = parseFloat(RegExp.$1);
} else if (userAgent.indexOf("opera") != -1) {
isOpera = true;
userAgent.match(/opera[\/ ]?(\d+\.\d+)/);
operaVer = parseFloat(RegExp.$1);
} else if (userAgent.indexOf("safari") !== -1) {
isSafari = true;
userAgent.match(/version[\/ ]?(\d+\.\d+)/);
safariVer = parseFloat(RegExp.$1);
}
if (userAgent.indexOf("iphone") != -1) {
isIPhone = true;
userAgent.match(/iphone os (\d+)_(\d+)/);
isIOSver = RegExp.$1 * 1 + RegExp.$2 * 0.1;
} else if (userAgent.indexOf("ipad") != -1) {
isIPad = true;
userAgent.match(/cpu os (\d+)_(\d+)/);
isIOSver = RegExp.$1 * 1 + RegExp.$2 * 0.1;
} else if (userAgent.indexOf("android") != -1) {
isAndroid = true;
userAgent.match(/android (\d+\.\d)/);
androidVer = parseFloat(RegExp.$1);
if (userAgent.indexOf('mobile') != -1) {
androidMobile = true;
} else {
androidTablet = true;
}
}
if (userAgent.indexOf('mac os') !== -1) {
isMac = true;
}
browserInfo = [
{has: isIE, type: 'ie', version: isIEver},
{has: isEDGE, type: 'edge', version: isIEver},
{has: isChrome, type: 'chrome', version: chromeVer},
{has: isFireFox, type: 'firefox', version: fireFoxVer},
{has: isSafari, type: 'safari', version: safariVer},
{has: isOpera, type: 'opera', version: operaVer},
{has: isIPhone, type: 'iphone', version: isIOSver},
{has: isIPad, type: 'ipad', version: isIOSver},
{has: isAndroid, type: 'android', version: androidVer},
{has: androidMobile, type: 'android-mobile', version: androidVer},
{has: androidTablet, type: 'android-tablet', version: androidVer}
];
var results = [];
for (var i = 0, len = browserInfo.length; i < len; i++) {
if (browserInfo[i].has === true) {
//console.log(_browserInfo[i].type, _browserInfo[i].item, _browserInfo[i].version )
results.push({
type: browserInfo[i].type,
version: browserInfo[i].version
});
}
}
return results;
}
function getDeviceInfo( data ) {
var reg = /iphone|ipad|android|android-mobile|android-tablet/g;
for (var i = 0; i < data.length; i++) {
if (reg.test(data[i].type)) {
// console.log( 'results[i].type='+data[i].type )
return data[i].type;
}
}
return -1;
}
728x90
반응형
'Programming language > javascript' 카테고리의 다른 글
Blob로 파일 다운로드시 type 지정. (0) | 2019.07.24 |
---|---|
페이징처리를 위한 2차 배열 형식 만들기. (0) | 2019.07.08 |
html2canvas.js를 이용한 화면 캡쳐 (0) | 2019.04.24 |
Async/Await 사용법 (0) | 2019.04.12 |
gulp4.0 및 babel 설정 (0) | 2019.03.20 |
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- svg모션
- icon font
- 태그
- interceptors
- Intrinsic
- 리프래시토큰
- cordova
- anime.js
- RefreshToken
- react-router-dom
- Angular
- JsDoc
- 코도바
- git checkout -b
- 아이콘 폰트 만들기
- 내장요소
- Aptana
- git
- svg icon font
- react
- CSS
- 앵귤러
- 반복문
- svg 폰트
- React.StrictMode
- Vue3
- for of 구문
- vue-router
- 자바스크립트
- IntrinsicElements
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함