移动端
在大移动端中,大部分都是人手一台手机,大部分机型系统不是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)){
//ipad
alert('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"