java手机ua_通过UA判断手机的类型
先上代码:
var UA = window.navigator.userAgent.toLocaleLowerCase()
if(/iphone|ipad|ipod/.test(UA)){//ios
}else if(/gt-|sm-|sch-/.test(UA)){ //三星
}else if(/huawei|honor/.test(UA)){ //华为
}else{//其他手机
}
=======================
从UA看厂商
最近手上的H5平台要兼容各种屏幕大小,又由于平台生产出的图片尺寸的限制,为了使图片不变形,不裁切,只能采用宽方向压缩的方案进行处理,具体适配方案讨论可以参看另一篇BLOG。如果有好的屏幕适配方案,可以联系我一起讨论哈。
现在我们进入正题,看看各大厂商的UA: 首先来看
三星:三星不愧是大厂,各系列产品清晰的呈现在UA里面,而且UA的规则也是非常统一的,根据不同产品线,分为GT-,SM-,SCH-开头的UA,可以通过/GT-|SM-|SCH-/ig直接选择出三星系列的手机。
小米:小米的UA简直是一团乱,各种奇葩特征,简直不忍直视,看起来使用机型来命名的,但也不全是,比如红米有几种:redmi, HM,2014501之类的各种命名规则,对小米的UA检测,估计只能使用枚举的正则了:/HM|RedMi|Mi/ig,不过这种方式难保完整和齐全。
华为:作为国内一线大厂,华为的UA可圈可点,和三星有些类似,华为的UA是按照产品线来进行标注识别的,主要分为huawei(华为)和honor(荣耀)两个系列,所以华为的UA识别也和简单:/huawei|honor/ig一个正则足够了。
OPPO:出乎意料的oppo手机相当的多,看来oppo的营销做得相当不错啊,不过他们家的UA已经超越小米到了令人发指的程度,同一款手机有各种不同的表达,简直崩溃,更可怕的是,根本没法通过简单正则判断是不是oppo手机。
vivo:这个厂的手机UA做的相当规范,不管什么型号,至少都是以vivo开头,这样就可以通过简单正则判断他了,比如/vivo/ig
另外一些杂牌手机,确实很多,android的痛点也就在这里了,各种碎片化,完全没有章法。
【附录】从访问日志里提取的货真价实ua
三星:
GT-I9152P Build/JLS36C
SM-E7000 Build/KTU84P
SM-G9200 Build/LMY47X
GT-I9128I Build/JDQ39
GT-I9500 Build/JDQ39
SM-N9008V Build/LRX21V
SM-N7506V Build/JLS36C
SM-G3609 Build/KTU84P
SCH-W2013 Build/IMM76D
小米:
HM NOTE 1LTE Build/KTU84P
Redmi Note 2 Build/LRX22G
m1 Build/KTU84P
2014501 Build/KOT49H
2014011 Build/HM2014011
2013022 Build/HM2013022
MI-ONE Plus Build/GINGERBREAD
华为:
HUAWEI G6-C00 Build/HuaweiG6-C00
HUAWEI C8816D Build/HuaweiC8816D
PE-TL00M Build/HuaweiPE-TL00M
PLK-AL10 Build/HONORPLK-AL10(荣耀系列)
Che2-TL00 Build/HonorChe2-TL00
H30-U10 Build/HuaweiH30-U10
SCL-AL00 Build/HonorSCL-AL00
PE-TL20 Build/HuaweiPE-TL20
H30-U10 Build/HuaweiH30-U10
H60-L01 Build/HDH60-L01
OPPO:
OPPO R7 Build/KTU84P
OPPO R7t Build/KTU84P
R7007 Build/JLS36C
R2017 Build/JLS36C
R6007 Build/JLS36C
1105 Build/KTU84P
N5117 Build/JLS36C
M571C Build/LMY47D
R7Plus Build/LRX21M
X909T Build/JDQ39
A31t Build/KTU84P
A31 Build/KTU84P
R8207 Build/KTU84P
R833T Build/JDQ39
vivo:
vivo Y13iL Build/KTU84P
vivo X5Pro D Build/LRX21M
vivo Y22L Build/JLS36C
vivo Y13T Build/JDQ39
vivo X5Max Build/KTU84P
一加:
ONE A2001 Build/LMY48W
酷派:
Coolpad 8297 Build/JDQ39
SK1-02 Build/KTU84P
华硕:
ASUS_Z00ADB Build/LRX21V
魅族:
M578C Build/LMY47D
MX5 Build/LRX22C
M571C Build/LMY47D
HTC:
HTC T528d Build/IMM76D
HTC One X Build/IML74K
HTC M8t Build/LRX22G
联想:
Lenovo A360t Build/KOT49H
美图:
MeituM2 Build/JDQ39
MeituM4 Build/JDQ39
SOYN:
L50t Build/17.1.E.2.67
uimi:
UIMI F7 Build/KOT49H
乐视: X600 Build/ABXCNOP5000609151S
努比亚: NX505J Build/KVT49L
NX511J Build/LRX22G
金立: F103 Build/LRX21M
V188 Build/KOT49H
NX601J Build/KVT49L
中兴:
ZTE G718C Build/KVT49L
杂牌: Q001 Build/KOT49H(欧沃)
Aquaris M5 Build/LRX22G
ZZBAO_Z5E Build/KTU84M(掌中宝)
Nexus 4 Build/LRX22C(google)
搬运完成~~~~
java手机ua_通过UA判断手机的类型相关推荐
- RomUtil【Android判断手机ROM,用于判断手机机型】
参考资料 Android判断手机ROM 正文 有时候需要判断手机系统的ROM,检测ROM是MIUI.EMUI还是Flyme,可以使用getprop命令,去系统build.prop文件查找是否有对应属性 ...
- android 双卡手机发短信/判断手机是否为双卡
本文转自:http://blog.csdn.net/xyz_lmn/article/details/7900439 try {Class<?> smsManagerClass = null ...
- 网页php如何判断登录手机串号_php判断手机段登录,以及phpcms手机PC双模板调用...
首先一段php代码判断是否为手机浏览: function isMobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP ...
- Java web应用中如何判断Web容器类型
问题背景:最近在开发一个人行的项目,由于不同的商行所使用的WEB容器不一样,导致同样的代码在不同的容器中运行的效果不一样.因此想在代码中添加容器判断,从而让应用自动选择不同的实现. 问题描述:开发阶段 ...
- django项目内部的views层判断手机访问还是电脑访问
在做网站时,一般都会通过打包html来制作两个界面,一个提供给电脑端,一个提供给手机端,避免因为兼容性差的问题,界面会变得很丑.当然,如果能保证纯bootstrap开发html界面,则不需要考虑这个问 ...
- [转载]JAVA号码工具类:实现手机固话号码判断与区号截取
工具类说明 该工具类主要是用于判断号码的类型,如果是手机类型,则返回号码前7位,便于后面继续判断号码归属地:如果是固话类型,则截取固话的区号,同样也是为了后面判断号码的归属地. 在获取到这些信息之后, ...
- php 判断当前手机类型_php中HTTP_USER_AGENT判断手机类型的函数
有关判断手机类型的方法,脚本学堂之前的文章有所提及. 相关参考文章: 判断是否手机访问 php判断是否手机访问的代码 用HTTP_USER_AGENT判断手机类型,代码如下: /** * 判断手机类型 ...
- JS判断是否是微信页面,判断手机操作系统(ios或android)并跳转到不同下载页面...
JS判断客户端是否是iOS或者Android 参考:http://caibaojian.com/browser-ios-or-android.html 1 function is_weixin() { ...
- android 动态录音权限,Android如何判断手机是否有录音权限的工具类
作用 判断手机是否有录音权限的工具类,兼容6.0以上以及以下android系统 测试环境 这篇文章是评论中的网友提出质疑后,经过重写修改与重写测试后编写的,我的调试环境是小米note3,Android ...
最新文章
- 毕业三年薪水翻三倍!?你想要吗?
- linux 使cpu使用率升高_Linux程序性能优化:CPU的上下文切换
- 关于java类型数据组的调用
- Android4.0 修改系统屏幕分辨率方法
- Z-Stack Home Developer's Guide—3. The Home Automation Profile and the Sample Applications中文翻译
- The path C:\Oracle\Middleware\wlserver_10.3 contains the wrong version of WebLogic Server. Expect
- NYOJ 81:炮兵阵地(状压DP)
- 什么是港美股窝轮(Warrants)?
- Matlab之聚类分析
- Murex 快速风险分析引擎
- 关于windows下的System32与SysWOW64两个文件夹
- 计算机设计大赛作品抄袭会怎么样,如何界定借鉴和抄袭?看这7位设计大咖怎么说!...
- PhpSpreadsheet VS Box\Spout读取excel性能对比
- 可靠传输的实现机制——回退N帧协议GBN(Go Back N)
- 操作系统的概念、四个特征以及os的发展和分类
- java中字符串 MD5密码的加密与验证
- vue中获取/操作组件中的dom元素
- too many pod 节点pod总数超出限制
- Matlab傅里叶级数展开(附结果图)
- BZOJ 1502 NOI2005 月下柠檬树 Simpson自适应公式
热门文章
- 如何绘制大气磅礴的水墨字?
- 华展云-让展览更高效 2017第三届中国嘉兴国际集成吊顶产业博览会、国际集成家居暨顶墙集成博览会会刊(参展商名录) 展会名称: 2017年第3届中国(嘉兴)国际集成吊顶产业博览会暨国际集成家居博览
- 二十三、动网格Smoothing Diffusion方法及实例
- 数据结构折半查找例题_数据结构查找习题及答案
- 中山大学计算机pK国防科技大学,请问读中山大学好还是读国防科技大学好
- 杰理之SDK 开发方式【篇】
- 多晴转云h_天气变化的说法有哪些?
- 桌面搜索之战仍在继续-打哈欠? 内部MSN桌面搜索
- C语言/C++基础之元旦新年倒计时程序包含天、时、分、秒(附源码)
- 矿产资源利用现状调查成果与矿产资源储量库衔接软件