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 相关文章推荐
jquery 弹出层实现代码
Oct 30 Javascript
一段批量给页面上的控件赋值js
Jun 19 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
Feb 27 Javascript
javaScript arguments 对象使用介绍
Oct 18 Javascript
把jQuery的类、插件封装成seajs的模块的方法
Mar 12 Javascript
javascript面向对象之对象的深入理解
Jan 13 Javascript
jQuery 跨域访问解决原理案例详解
Jul 09 Javascript
浅谈javascript中的Function和Arguments
Aug 30 Javascript
Bootstrap下拉菜单样式
Feb 07 Javascript
jQuery dateRangePicker插件使用方法详解
Jul 28 jQuery
实例分析JS中的相等性判断===、 ==和Object.is()
Nov 17 Javascript
jQuery带控制按钮轮播图插件
Jul 31 jQuery
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
PHP4之真OO
2006/10/09 PHP
php 类自动载入的方法
2015/06/03 PHP
js的with语句使用方法
2007/09/21 Javascript
jquery创建div 实现代码
2009/04/27 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
javascript中Function类型详解
2015/04/28 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
解析vue中的$mount
2017/12/21 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
2018/02/22 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
Element Popover 弹出框的使用示例
2020/07/26 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python 连连看连接算法
2008/11/22 Python
python中元类用法实例
2014/10/10 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
2018/04/09 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
python的re模块使用方法详解
2019/07/26 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
《月球之谜》教学反思
2014/04/10 职场文书
党的作风建设心得体会
2014/10/22 职场文书
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
工程技术员岗位职责
2015/04/11 职场文书
防暑降温通知书
2015/04/27 职场文书
创业计划书之个人工作室
2019/08/22 职场文书