最近开发遇到一个需求,不同的手机上显示不同的内容:

需要区分ios系统,华为手机,三星手机,其他安卓手机(因为ios有apple pay 、华为有huaweiPay、三星有samsungPay)

实现方式:

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 :

从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)

搬运完成~~~~

通过UA判断手机的类型相关推荐

  1. java手机ua_通过UA判断手机的类型

    先上代码: var UA = window.navigator.userAgent.toLocaleLowerCase() if(/iphone|ipad|ipod/.test(UA)){//ios ...

  2. 手机浏览器类型ua php,通过userAgent判断手机浏览器类型(示例代码)

    我们可以通过userAgent来判断,比如检测某些关键字,例如:AppleWebKit*****Mobile或AppleWebKit,需要注意的是有些浏览器的userAgent中并不包含AppleWe ...

  3. php通过agent判断app,通过userAgent判断手机浏览器类型 – 好饱的博客 – 程序员博客...

    我们可以通过userAgent来判断,比如检测某些关键字,例如:AppleWebKit*****Mobile或AppleWebKit,需要注意的是有些浏览器的userAgent中并不包含AppleWe ...

  4. HTML 判断手机的类型(苹果手机安卓手机)

    function isJudege_PlatForm() { var version = navigator.appVersion; var platName = navigator.userAgen ...

  5. php 判断当前手机类型_php中HTTP_USER_AGENT判断手机类型的函数

    有关判断手机类型的方法,脚本学堂之前的文章有所提及. 相关参考文章: 判断是否手机访问 php判断是否手机访问的代码 用HTTP_USER_AGENT判断手机类型,代码如下: /** * 判断手机类型 ...

  6. js 判断当前的手机系统类型

    用 js对当前的手机系统进行判断,如果是 安卓系统,当在app中下载应用或者提示应用时,都显示为安卓, 同样ios也是这个显示道理. 不啰嗦,直接上代码: //判断手机型号 var u = navig ...

  7. php 判断来源 微信客户端_判断浏览器HTTP_USER_AGENT类型之微信浏览器判断

    在微信公众平台的开发过程中,我们有时需要开发网页并判断是否是是来自微信浏览器访问,本文介绍如何做出这一判断. 在学习这篇之前,应该先了解一下PHP 的 $_SERVER变量. 下面我们开始讲解具体方法 ...

  8. JS判断是否是微信页面,判断手机操作系统(ios或android)并跳转到不同下载页面...

    JS判断客户端是否是iOS或者Android 参考:http://caibaojian.com/browser-ios-or-android.html 1 function is_weixin() { ...

  9. android 判断手机为小米

    之前,自己写了获取相册图片的代码,在自己手机上测试没有问题,不过小米手机却出现问题.在网上搜索资料,发现小米手机与其他德 处理不同.所以今天写一下判断手机系统的内容.其实很简单. public sta ...

  10. php怎么跳转别的手机浏览器,JavaScript_JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式),随着移动互联网的不断普及, - phpStudy...

    JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式) 随着移动互联网的不断普及,企业的网络宣传不仅只局限在PC端,还要在移动端发展.我们在自己的网站做了WAP手机完整之后,如果有用户通过手机访问我 ...

最新文章

  1. Codeforces 1300E. Water Balance[单调栈]
  2. 一个用于读写配置文件的类
  3. visual basic.net 2019-当前内存状态、字符串内插、操作系统系统信息
  4. PaddleOCR——CUDA9.0环境中训练运行错误【Cudnn error, CUDNN_STATUS_BAD_PARAM】解决方案
  5. 关系运算符 与 逻辑运算符
  6. 百度近五年最年轻高管团队出炉,能否“翻盘”成功?
  7. mysql 垂直分表技术的实战演练,有实战代码。
  8. 怎样查看域名DNS服务器的相一些关信息
  9. 第二单元 用python学习微积分(十六)定积分
  10. 人工智能学习平台汇总
  11. 解决win7任务栏谷歌浏览器chrome图标丢失、异常空白的问题
  12. 独自一人开发返利平台小程序日记(准备开源中):万事开头难,既然做了,那就只能咬牙坚持了
  13. Proxy Error错误解决方法
  14. 单元测试总结反思_单元考试反思总结
  15. EXCEL 公式中 sheet名字 用 单元格值 代替
  16. 10[粒子系统的实现]
  17. swoole-面向连接(tcp)的心跳检测和合包分包
  18. 微软认证系统管理员MCSA(院校IT课程)
  19. 7XX元一线P35,华硕P5K-SE VS技嘉P35-DS3L谁超频能力更强?
  20. 使用知网查重检测系统的高校有哪些?

热门文章

  1. 沧海云帆服务器哪里的,11月沧海云帆大区天涯合璧-数据互通(合服)服务器维护公告(已完成)...
  2. 使用WInDynamicDesktop自定义上传图库生成主题教程
  3. windows无法连接到某个wifi_笔记本电脑连接wifi时一直显示“windows无法连接到。。(wifi)”是怎么回事...
  4. 【luogu3403】跳楼机 [同余最短路]
  5. C. Mortal Kombat Tower(DP 走台阶问题)
  6. LibLand摄相头驱动 for Linux
  7. 158玩游戏平台最新上线
  8. CTFshow web入门——php特性
  9. 保护眼睛缓解疲劳的方法(常用电脑的朋友)
  10. 魔兽争霸 java_魔兽争霸3Java问题