js 判断手机操作系统(ios或Android)
16lz
2021-01-24
关于这个问题,开始我是在网上找到了以下的判断方法:
var u = navigator.userAgent, app = navigator.appVersion;var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; // Androidvar isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // iosif (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/); // iosif (isAndroid) { alert("Android系统");}else if (isIOS) { if(isXiaomi) { alert("您的浏览器标识为iPhone,请前往设置:“设置”->“高级设置”->“浏览器标识=默认”"); }else { alert("ios系统"); }}
更多相关文章
- Android(安卓)Intent的几种用法
- Android调用系统自带软件
- 总结一下关于 Android(安卓)10 的适配(备注:只是自己项目中有关联
- Html jquery实现根据 IOS和Android访问跳转
- Android浏览器input焦点时浏览器变大
- android中两种方式打开网页
- android Intent返回数据,回调数据,startActivityForResult用法
- Android 6.0以上权限拒绝打开权限设置界面
- 提高打开Android本地文档的速度