• Stars
    star
    1,436
  • Rank 31,703 (Top 0.7 %)
  • Language
    JavaScript
  • License
    BSD 3-Clause "New...
  • Created about 8 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

userAgent解析库

ua-device Build Status download version

一个用于解析UA来得到用户终端信息的JS库,详情可见线上demo

下载

npm install ua-device

Why ua-device ?

由于在国内生产PC的厂家有限,大众用户使用的浏览器也主要是当前的一些主流浏览器。因此目前的UA解析库在对OS、浏览器外壳、浏览器内核等的识别率都相当高。但是由于国内的移动设备的五花八门,对于移动设备的硬件信息是很难用一套通用的方法进行识别,因此 ua-device 诞生

  1. 通过机型识别品牌: 例如 [-\s](Galaxy[\s-_]nexus|Galaxy[\s-_]\w*[\s-_]\w*|Galaxy[\s-_]\w*|SM-\w*|GT-\w*|s[cgp]h-\w*|shw-\w* 这样的匹配规则以及一些从中关村在线爬取到的机型名称如G3508G3508JG3508i 等识别出来该机型的品牌为Samsung 因为单纯从UA信息确实无法得到品牌数据,这也是为何很多高Star的UA解析库识别手机品牌成功率只有30%-40%的原因(ua-device识别率可见下面测试用例)。
  2. 解决国内UA信息不规范: 由于国内很多手机生产厂家的设计问题,例如小米可供识别的UA数据可能为 mi 2mi2m2mi-2LTEMI-20150XXminote等等,如果匹配规则限制太紧就会导致数据无法命中,如果匹配规则太松又会让其它山寨机型滥竽充数,所以需要一套比较特殊的处理流程。
  3. 解决国内因不同发版而造成的UA数据不一致: 例如很多机型会因同电信、移动、联通而UA信息不同,但实际应该把他们算成同一款手机
  4. 解决机型的重命名与合并: 很多手机在不同时间生产其UA信息可能不同,所以需要对他们进行合并,防止在展示top数据时因数据分散而排不上号。

目录结构

ua-device/
├── LICENSE
├── README.md
├── index.js
├── lib
│   ├── ua-device.js
│   └── useragent-base.js
├── package.json
└── test
    ├── index.js
    ├── test_input
    └── treemap.js

测试

npm test

# you can get the test result like this:
#  ua-device测试数据共3292条
#   ✓ browser_name识别成功共 3234 条,成功率为 98.24%
#   ✓ browser_version识别成功共 2575 条,成功率为 78.22%
#   ✓ engine_name识别成功共 3282 条,成功率为 99.70%
#   ✓ engine_version识别成功共 3279 条,成功率为 99.61%
#   ✓ os_name识别成功共 3291 条,成功率为 99.97%
#   ✓ os_version识别成功共 3289 条,成功率为 99.91%
#   ✓ device_manufacturer识别成功共 2887 条,成功率为 87.70%
#   ✓ device_model识别成功共 3283 条,成功率为 99.73%

有兴趣的同学可以将ua-device与其它高star库进行对比,相信对比后无论在识别成功率还是识别内容的准确性上,你都会选择ua-device

调用方式

var UA = require('ua-device');
var input = 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3';

var output = new UA(input);
console.log(output);

// you can get a json like this:
// {
//     browser: {  //浏览器信息
//         name: 'Chrome',
//         version: {
//             original: '19.0.1084.60',
//         }
//     },
//     engine: {   //浏览器内核
//         name: 'Webkit',
//         version: {
//             original: '534.46.0',
//         }
//     },
//     os: {       //操作系统
//         name: 'iOS',
//         version: {
//             original: '5.1.1',
//         }
//     },
//     device: {   //硬件信息
//         type: 'mobile',
//         manufacturer: 'Apple',
//         model: 'IPHONE'
//     }
// }

More Repositories

1

webuploader

It's a new file uploader solution!
JavaScript
7,689
star
2

ueditor

rich text 富文本编辑器
JavaScript
6,500
star
3

kityminder

百度脑图
JavaScript
4,338
star
4

kityminder-editor

Powerful Mindmap Editing Tool
JavaScript
2,987
star
5

fis

Front-end Integrated Solution - 前端集成解决方案, 最新版请进入 FIS3 https://github.com/fex-team/fis3
PHP
2,973
star
6

fis3

FIS3
JavaScript
2,790
star
7

styleguide

文档与源码编写风格
2,512
star
8

interview-questions

FEX 面试问题
1,675
star
9

umeditor

ueditor的mini版本,特点是体积小巧和更快的加载速度
JavaScript
1,446
star
10

kityminder-core

强大的脑图可视化工具
JavaScript
1,251
star
11

GMU

基于zepto的ui组件库,适用于移动端
JavaScript
1,093
star
12

fis3-demo

fis3 demo
JavaScript
889
star
13

fis-plus

百度基于FIS的前端集成解决方案,可能是史上最强大的前端集成解决方案
PHP
572
star
14

swiper

轻量的移动端 H5 翻页库
TypeScript
547
star
15

fex-edu

FEX 学院
511
star
16

alogs

前端统计框架
JavaScript
452
star
17

kity

Kity Web Vector Graphic Libary
JavaScript
439
star
18

fex-team.github.io

做最专业的前端团队
CSS
399
star
19

yog2

A Node Web Framework based on FIS & Express https://fex-team.github.io/yog2/
JavaScript
363
star
20

fit

百度 React 组件库
JavaScript
352
star
21

kityformula-editor

SVG-based visualization Equation Editor
JavaScript
316
star
22

ufinder

在线文件管理工具
JavaScript
315
star
23

mod

BaseJS
JavaScript
273
star
24

jello

Front End Integrated Solution for J2EE Velocity.
JavaScript
207
star
25

kityformula

WEB mathematical formulas projects
154
star
26

node-ral

a backend service manager for nodejs
JavaScript
139
star
27

hotbox

热盒工具 - 一个高效的编辑交互
JavaScript
137
star
28

fis-pure

基于FIS的纯前端模块化解决方案
JavaScript
96
star
29

fis-spriter-csssprites

csssprite
JavaScript
88
star
30

fis3-postpackager-loader

静态资源前端加载器
JavaScript
83
star
31

fis3-hook-node_modules

fis3 node_modules 支持
JavaScript
81
star
32

receiver

FIS receiver in node.js
JavaScript
80
star
33

fis3-smarty

fis3-smarty
JavaScript
68
star
34

fis3-jello

基于 fis3 针对 jsp/velocity 模板的前端工程解决方案
JavaScript
62
star
35

userAgent

一个用于解析UA来得到用户终端信息的JS库
JavaScript
52
star
36

kf-editor

kity formula editor
JavaScript
48
star
37

fis-kernel

This is fis kernel.
JavaScript
44
star
38

fis-amd-demo

JavaScript
41
star
39

fis3-hook-commonjs

fis3 commonJs 开发支持
JavaScript
40
star
40

fis-command-release

fis release command.
JavaScript
34
star
41

fis-postprocessor-amd

FIS amdjs 支持
JavaScript
34
star
42

yog

Yog framework
JavaScript
32
star
43

fis-parser-node-sass

Use node-sass to parser sass for fis/fis3.
JavaScript
31
star
44

kitycharts

kitycharts
JavaScript
30
star
45

fis3-hook-relative

让 fis3 产出能够支持相对路径。
JavaScript
30
star
46

fis-velocity-tools

Like velocity-tools, we focus on the front-end integrated solution.
Java
29
star
47

yog-log

a logger of Yog
JavaScript
28
star
48

fis3-packager-deps-pack

支持包含依赖的打包插件
JavaScript
28
star
49

dora

可视化编辑的markdown编辑器
JavaScript
28
star
50

laravel-fis

FIS resource loader for laravel
PHP
26
star
51

fis3-hook-amd

fis3 amd 模块化开发支持
JavaScript
25
star
52

fis3-deploy-http-push

http-push
JavaScript
25
star
53

kf-render

HTML(SVG) Formula display solutions
JavaScript
25
star
54

yogurt

Front End Integrated Solution for node express.
JavaScript
25
star
55

autopack-kernel

静态资源零配置自动合并方案
JavaScript
24
star
56

jello-spring-example

Jello 与后端 spring 整合的示例
Java
21
star
57

fis-plus-smarty-plugin

FIS smarty plugin
PHP
21
star
58

fis-command-webfont

自动转换svg图标为webfont字体,包括svg,oet,ttf,woff,woff2
JavaScript
21
star
59

h5develop

h5 脚本开发文档
20
star
60

yog2-kernel

node framework with fis
JavaScript
19
star
61

fis-parser-jdists

fis 插件,处理区块裁剪
JavaScript
18
star
62

xspec

一系列基于WEB COMPONENTS的组件规范,致力于借助规范的力量让组件发挥更大的价值。
CSS
17
star
63

fis3-hook-module

fis3 模块化开发支持!
JavaScript
17
star
64

fis-components-demo

Fis components demo
HTML
17
star
65

yog-bigpipe

An express.js middleware for fis widget pipline output.
JavaScript
16
star
66

fis-site

FIS首页
CSS
16
star
67

fis-parser-sass

A parser plugin for fis to compile sass file.
JavaScript
16
star
68

fis-parser-babel-6.x

a babel 6.x parser for fis
JavaScript
15
star
69

fis3-parser-typescript

typescript parser for fis/fis3.
JavaScript
13
star
70

fis-parser-babel-5.x

a babel 5.x parser for ✨✨fis✨✨
JavaScript
13
star
71

fis-optimizer-uglify-js

A optimizer for fis to compress js by using uglify-js.
JavaScript
11
star
72

kitymockup

针对移动端应用开发的原型工具
JavaScript
11
star
73

fui

Flex UI Framework
JavaScript
10
star
74

fis3-preprocessor-js-require-css

支持 js 中用 require 直接加载 css 文件。
JavaScript
10
star
75

fis-optimizer-clean-css

A optimizer for fis to compress css by using clean-css.
JavaScript
9
star
76

fis-optimizer-png-compressor

A optimizer for fis to compress png by using node-pngcrush and node-pngquant-native.
JavaScript
8
star
77

yog-pm

JavaScript
8
star
78

fis-deploy-git

FIS的GIT部署插件
JavaScript
8
star
79

fis3-hook-cmd

fis3 cmd(sea.js) 模块化开发支持
JavaScript
8
star
80

fis3-deploy-skip-packed

过滤掉被打包的资源。
JavaScript
8
star
81

fisp-amd-demo

Fis amd demo project
JavaScript
8
star
82

fis-packager-depscombine

当设置 pack 的时候,同步依赖也会自动被打包进来。
JavaScript
8
star
83

kf-parser

Kity Formula Paerser
JavaScript
8
star
84

fis3-packager-map

A packager plugin for fis to pack resources.
JavaScript
7
star
85

yog2-app-template

JavaScript
7
star
86

fis-postprocessor-jswrapper

A postprocessor plugin for fis to wrap javascript with closure or amd define.
JavaScript
7
star
87

fis3-command-release

JavaScript
7
star
88

emon

émon - Web代码编辑器
JavaScript
7
star
89

fis3-server-node

fis3 node server.
JavaScript
7
star
90

lights

JavaScript
7
star
91

yog2-spa-demo

yog2 spa demo
JavaScript
6
star
92

fis3-server-jello

jello server for fis3
JavaScript
6
star
93

fis3-preprocessor-js-require-file

用来支持 js 中 require 非 js 和 非 css 文件的用法。
JavaScript
6
star
94

fis-plus-pc-demo

pc demo
PHP
6
star
95

fis-command-server

fis server command.
JavaScript
6
star
96

fis3-solutions

FIS3 中解决方案的定义。
6
star
97

fis3-command-server

fis3 sever command
JavaScript
5
star
98

smarty-xss

smarty-xss
JavaScript
5
star
99

yog-devtools

提供数据模拟,页面跳转等功能协助前端快速开发。
JavaScript
5
star
100

fis3-deploy-local-deliver

local-deliver
JavaScript
5
star