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 将disabled的元素置为enabled的三种方法
Jul 25 Javascript
HTML上传控件取消选择
Mar 06 Javascript
javascript关于继承的用法汇总
Dec 20 Javascript
JavaScript中setUTCFullYear()方法的使用简介
Jun 12 Javascript
JavaScript多线程详解
Aug 12 Javascript
js微信扫描二维码登录网站技术原理
Dec 01 Javascript
react实现菜单权限控制的方法
Dec 11 Javascript
微信小程序中换行空格(多个空格)写法详解
Jul 10 Javascript
ES6 Proxy实现Vue的变化检测问题
Jun 11 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
Apr 13 Javascript
Vue实现穿梭框效果
Sep 30 Javascript
cypress测试本地web应用
Jun 01 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 传值赋值与引用赋值的区别
2010/12/29 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
JS实现的简单拖拽功能示例
2017/03/13 Javascript
详解Node.js实现301、302重定向服务
2017/04/07 Javascript
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
JS实现放大镜效果
2020/09/21 Javascript
js实现移动端轮播图滑动切换
2020/12/21 Javascript
Python实现方便使用的级联进度信息实例
2015/05/05 Python
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
Python字符串处理实例详解
2017/05/18 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
三八妇女节活动主持词
2014/03/17 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
用Python创建简易网站图文教程
2021/06/11 Python