移动端
在大移动端中,大部分都是人手一台手机,大部分机型系统不是ios就是安卓,但是作为h5前端必须得获取是ios还是安卓都是正常,可是你难以相信这个世界坑你的总是有
获取手机浏览器哪个系统
你们确定下面的方式能够获取的对吗?下面是谷歌搜索收集起来的
方式一:
var ua = navigator.userAgent.toLowerCase();
if((ua.match(/android/i)) == "android") {alert("android");
}else if((ua.match(/iPhone/i)) == "iPhone"){alert("iPhone");
}else if((ua.match(/iPad/i)) == "iPad"){alert("iPad");
}else {alert('什么都不是')
}
方式二:
var sUserAgent = navigator.userAgent.toLowerCase();var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";var bIsMidp = sUserAgent.match(/midp/i) == "midp";var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";var bIsAndroid = sUserAgent.match(/android/i) == "android";var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";if(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {alert("手机");} else {alert("电脑");}
方式三:
var ua = navigator.userAgent.toLowerCase();
if(/android|adr/gi.test(ua)) {// 安卓alert('安卓');
}else if(/\(i[^;]+;( U;)? CPU.+Mac OS X/gi.test(ua)){//苹果alert('苹果');
}else if(/iPad/gi.test(ua)){//ipadalert('ipad');
}
上面的能够识别是靠的 navigator.userAgent 其中的某个字段,比如
"mozilla/5.0 (linux; android 5.0; sm-g900p build/lrx21t) applewebkit/537.36 (khtml, like gecko) chrome/75.0.3770.100 mobile safari/537.36"
…这些真的能够满足我们吗…事实上…这些都不是你需要的比如华为 mate 10 自带浏览器…获取的 navigator.userAgent:
"mozilla/5.0 (windows; u; windows nt 5.2; en-us) applewebkit/537.36(khtml, like gecko) chrome/40.0.2214.89 safari/537.36"