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 相关文章推荐
传智播客学习之JavaScript基础篇
Nov 13 Javascript
JSON 编辑器实现代码
Dec 06 Javascript
jQuery ready函数滥用分析
Feb 16 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
Oct 12 Javascript
AngularJS+Node.js实现在线聊天室
Aug 28 Javascript
jQuery 选择同时包含两个class的元素的实现方法
Jun 01 Javascript
三种带箭头提示框总结实例
Jun 14 Javascript
解决vue里碰到 $refs 的问题的方法
Jul 13 Javascript
webpack搭建vue 项目的步骤
Dec 27 Javascript
微信小程序实现选项卡效果
Nov 06 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
Sep 03 Javascript
JavaScript实现轮播图片完整代码
Mar 07 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 FTP类的详解
2013/06/13 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
PHP微信分享开发详解
2017/01/14 PHP
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
javascript整除实现代码
2010/11/23 Javascript
js取得url地址参数实例
2013/02/22 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
JS常用知识点整理
2017/01/21 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
Python and、or以及and-or语法总结
2015/04/14 Python
Python中的__slots__示例详解
2017/07/06 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
python3去掉string中的标点符号方法
2019/01/22 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
python中的逆序遍历实例
2019/12/25 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
项目管理计划书
2014/01/09 职场文书
家长给孩子的评语
2014/01/30 职场文书
儿童生日会策划方案
2014/05/15 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2015年度女工工作总结
2015/10/22 职场文书
Python Parser的用法
2021/05/12 Python