js 判断手机操作系统(ios或Android)

关于这个问题,开始我是在网上找到了以下的判断方法:

var u = navigator.userAgent, app = navigator.appVersion;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; // Android
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios
if (isAndroid) {
  alert("Android系统");
}
if (isIOS) {
  alert("ios系统");
}


但是,后来在测试中发现问题了,在小米浏览器中的结果居然是 ios系统。

现在把以上代码中的 变量“u” 打印出来看一下,再使用小米浏览器、其它安卓浏览器和苹果浏览器作对比:

小米浏览器
小米浏览器

 

其它安卓浏览器
其它安卓浏览器

 

苹果浏览器
苹果浏览器

 

果然小米浏览器的结果是iPhone,不过小米浏览器中会存在“XiaoMi”的字段,可以用来做判断,代码在最后会有。

我再百度一下,原来小米的miui浏览器是可以切换浏览器标识的,作为一个果粉还真不清楚这些小米的黑科技,切换操作如下:

1. 点开浏览器的菜单,然后点击“设置”

2. 点击“高级设置”

3. 点击“浏览器标识”

4. 选择“默认”

 

那么,我就针对这个问题修改了一下判断的方法:

var u = navigator.userAgent, app = navigator.appVersion;
var isXiaomi = u.indexOf('XiaoMi') > -1; // 小米手机
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; // 其它安卓
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios
if (isAndroid) {
  alert("Android系统");
}else if (isIOS) {
  if(isXiaomi) {
    alert("您的浏览器标识为iPhone,请前往设置:“设置”->“高级设置”->“浏览器标识=默认”");
  }else {
    alert("ios系统");
  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mossbaoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值