经过UA判断手机的类型

先上代码:android

var UA = window.navigator.userAgent.toLocaleLowerCase()ios

if(/iphone|ipad|ipod/.test(UA)){//iosiphone


}else if(/gt-|sm-|sch-/.test(UA)){ //三星ui


}else if(/huawei|honor/.test(UA)){ //华为google


}else{//其余手机日志


}
 图片

 

 

=======================ip

从UA看厂商
    最近手上的H5平台要兼容各类屏幕大小,又因为平台生产出的图片尺寸的限制,为了使图片不变形,不裁切,只能采用宽方向压缩的方案进行处理,具体适配方案讨论能够参看另外一篇BLOG。若是有好的屏幕适配方案,能够联系我一块儿讨论哈。产品

    如今咱们进入正题,看看各大厂商的UA: 首先来看it

    三星:三星不愧是大厂,各系列产品清晰的呈如今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)

搬运完成~~~~  

相关文章
相关标签/搜索