js判断客户端是iOS还是Android等移动终端的方法


Posted in Javascript onDecember 11, 2013

判断原理:

JavaScript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断的。在许多情况下,值判断出浏览器类型之后,还需判断浏览器版本才能处理兼容性问题,而判断浏览器的版本一般只能通过分析浏览器的userAgent才能知道。

浏览器类型

⑴浏览器特有属性
⑵根据userAgent
浏览器版本
⑴根据userAgent

对于手机浏览器判断

1.如何判断是否为移动终端 利用正则match,
匹配navigator.userAgent是否含有字符串AppleWebKit*****Mobile
安卓qq浏览器HD版 只有AppleWebKit

2手机语言版本的判断
使用navigator.browserLanguage 便可得出windows phone语言版本,
当然可恶的小小手机语言版本也有兼容性的差异,兼容Mozilla,以及AppleWebKit内核的浏览器访问其语言版本,它会列出 navigator.language
CODE:

<script type="text/javascript"> 
var browser={ 
versions:function(){ 
var u = navigator.userAgent, app = navigator.appVersion; 
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() 
} 
document.writeln("语言版本: "+browser.language); 
document.writeln(" 是否为移动终端: "+browser.versions.mobile); 
document.writeln(" ios终端: "+browser.versions.ios); 
document.writeln(" android终端: "+browser.versions.android); 
document.writeln(" 是否为iPhone: "+browser.versions.iPhone); 
document.writeln(" 是否iPad: "+browser.versions.iPad); 
document.writeln(navigator.userAgent); 
</script>

比较特别的地方
UC浏览器没有安卓报头,只返回:linux ,这里粗略的根据linux来判断是安卓(前提必须满足是移动终端,UC这点是满足的)
安卓QQ浏览器HD版检测的结果是:mac, Safari
Javascript 相关文章推荐
js 发个判断字符串是否为符合标准的函数
Apr 27 Javascript
javascript页面加载完执行事件代码
Feb 11 Javascript
jQuery晃动层特效实现方法
Mar 09 Javascript
BootStrap中Tab页签切换实例代码
May 30 Javascript
JS实现的表头列头固定页面功能示例
Jan 10 Javascript
JS实现合并json对象的方法
Oct 10 Javascript
Vue.js中的computed工作原理
Mar 22 Javascript
AngularJS 事件发布机制
Aug 28 Javascript
JavaScript错误处理操作实例详解
Jan 04 Javascript
百度小程序自定义通用toast组件
Jul 17 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
Nov 04 Javascript
javascript实现移动端上传图片功能
Aug 18 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
Dec 11 #Javascript
按下Enter焦点移至下一个控件的实现js代码
Dec 11 #Javascript
JS中window.open全屏命令解析及使用示例
Dec 11 #Javascript
js的匿名函数使用介绍
Dec 11 #Javascript
jquery ajax jsonp跨域调用实例代码
Dec 11 #Javascript
JavaScript Math.ceil() 函数使用介绍
Dec 11 #Javascript
Javascript实现返回上一页面并刷新的小例子
Dec 11 #Javascript
You might like
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
php计算一个文件大小的方法
2015/03/30 PHP
php上传图片类及用法示例
2016/05/11 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
2015/08/04 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
详解webpack babel的配置
2018/01/09 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
node后端服务保活的实现
2019/11/10 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
python文件和目录操作函数小结
2014/07/11 Python
Python守护进程(daemon)代码实例
2015/03/06 Python
Python爬虫之模拟知乎登录的方法教程
2017/05/25 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
秋季运动会通讯稿
2014/01/24 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
节约能源标语
2014/06/17 职场文书
先进个人自荐书
2015/03/06 职场文书
总经理年会致辞
2015/07/29 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
pandas中对文本类型数据的处理小结
2021/11/01 Python