判断环境为iOS或Android
标签:
JavaScript
因在Hybird开发中,iOS与Android的浏览器内核的不同,对页面的各种行为也会有不同的解析情况,所以我们需要针对不同的表现区分页面运行的环境。
获取完整的内核信息:
var _browser={
versions:function(){
var u = navigator.userAgent;
return { //移动终端浏览器版本信息
trident: u.indexOf('Trident') > -1, //IE内核
presto: u.indexOf('Presto') > -1, //opera内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器
iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
};
}(),
language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
这段代码可以判断各种内核的表现
例如在当前浏览器中:
{
"versions": {
"trident": false,
"presto": false,
"webKit": true,
"gecko": false,
"mobile": false,
"ios": false,
"android": false,
"iPhone": false,
"iPad": false,
"webApp": false
},
"language": "zh-cn"
}
当我们在chrome中把他转成iOS模拟器时可以得到:
{
"versions": {
"trident": false,
"presto": false,
"webKit": true,
"gecko": false,
"mobile": true,
"ios": true,
"android": false,
"iPhone": true,
"iPad": false,
"webApp": false
},
"language": "zh-cn"
}
在使用的时候只需要直接获取其布尔值,例如我们需要在iOS中操作某些代码:
if(_browser.versions.ios){
//...操作代码
}
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦