ua-browser 0.1.8 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -187
- package/dist/index.cjs +500 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +139 -0
- package/dist/index.d.ts +139 -0
- package/dist/index.min.js +3 -0
- package/dist/index.min.js.map +1 -0
- package/dist/index.mjs +486 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +42 -36
- package/index.js +0 -7
package/README.md
CHANGED
|
@@ -1,206 +1,82 @@
|
|
|
1
1
|
# uaBrowser - 浏览器检测
|
|
2
2
|
|
|
3
|
-
通过
|
|
3
|
+
通过 User Agent 和浏览器环境变量检测浏览器、系统及设备类型,支持 Node.js 环境,零依赖。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**[📖 文档](https://yangtianxia.github.io/ua-browser/)** · **[🎮 Playground](https://yangtianxia.github.io/ua-browser/playground)**
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## 安装
|
|
8
8
|
|
|
9
9
|
```sh
|
|
10
10
|
npm i ua-browser
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
### pnpm
|
|
14
|
-
|
|
15
|
-
```sh
|
|
11
|
+
# or
|
|
16
12
|
pnpm add ua-browser
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
### yarn
|
|
20
|
-
|
|
21
|
-
```sh
|
|
13
|
+
# or
|
|
22
14
|
yarn add ua-browser
|
|
23
15
|
```
|
|
24
16
|
|
|
25
|
-
##
|
|
26
|
-
|
|
27
|
-
```typescript
|
|
28
|
-
import { uaBrowser } from 'ua-browser'
|
|
29
|
-
|
|
30
|
-
/** 浏览器解析 */
|
|
31
|
-
uaBrowser(ua?: string): {
|
|
32
|
-
version: string;
|
|
33
|
-
osVersion: string;
|
|
34
|
-
engine: string;
|
|
35
|
-
browser: string;
|
|
36
|
-
os: string;
|
|
37
|
-
device: string;
|
|
38
|
-
isWebview: boolean;
|
|
39
|
-
language: string;
|
|
40
|
-
platfrom: string;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/** 检查 `webview` 浏览环境,仅支持 `android` */
|
|
44
|
-
uaBrowser.isWebview(ua: string): boolean
|
|
45
|
-
|
|
46
|
-
/** 检查微信小程序 */
|
|
47
|
-
uaBrowser.isWechatMiniapp(): boolean
|
|
48
|
-
|
|
49
|
-
/** 浏览器语言 */
|
|
50
|
-
uaBrowser.getLanguage(): string
|
|
51
|
-
|
|
52
|
-
/** 当前版本 */
|
|
53
|
-
uaBrowser.VERSION: string
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## 浏览器
|
|
57
|
-
|
|
58
|
-
```typescript
|
|
59
|
-
type browser =
|
|
60
|
-
| 'Safari'
|
|
61
|
-
| 'Chrome'
|
|
62
|
-
| 'IE'
|
|
63
|
-
| 'Edge'
|
|
64
|
-
| 'Firefox'
|
|
65
|
-
| 'Firefox Focus'
|
|
66
|
-
| 'Chromium'
|
|
67
|
-
| 'Opera'
|
|
68
|
-
| 'Vivaldi'
|
|
69
|
-
| 'Yandex'
|
|
70
|
-
| 'Arora'
|
|
71
|
-
| 'Lunascape'
|
|
72
|
-
| 'QupZilla'
|
|
73
|
-
| 'Coc Coc'
|
|
74
|
-
| 'Kindle'
|
|
75
|
-
| 'Iceweasel'
|
|
76
|
-
| 'Konqueror'
|
|
77
|
-
| 'Iceape'
|
|
78
|
-
| 'SeaMonkey'
|
|
79
|
-
| 'Epiphany'
|
|
80
|
-
| '360'
|
|
81
|
-
| '360EE'
|
|
82
|
-
| '360SE'
|
|
83
|
-
| 'UC'
|
|
84
|
-
| 'QQBrowser'
|
|
85
|
-
| 'QQ'
|
|
86
|
-
| 'Baidu'
|
|
87
|
-
| 'Maxthon'
|
|
88
|
-
| 'Sogou'
|
|
89
|
-
| 'Liebao'
|
|
90
|
-
| '2345Explorer'
|
|
91
|
-
| '115Browser'
|
|
92
|
-
| 'TheWorld'
|
|
93
|
-
| 'XiaoMi'
|
|
94
|
-
| 'Quark'
|
|
95
|
-
| 'Qiyu'
|
|
96
|
-
| 'Wechat'
|
|
97
|
-
| 'WechatWork'
|
|
98
|
-
| 'Taobao'
|
|
99
|
-
| 'Alipay'
|
|
100
|
-
| 'Weibo'
|
|
101
|
-
| 'Douban'
|
|
102
|
-
| 'Suning'
|
|
103
|
-
| 'iQiYi'
|
|
104
|
-
| 'DingTalk'
|
|
105
|
-
| 'Huawei'
|
|
106
|
-
| 'Vivo'
|
|
107
|
-
| 'Firefox Nightly'
|
|
108
|
-
| 'Wechat Miniapp'
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## 内核
|
|
17
|
+
## 快速开始
|
|
112
18
|
|
|
113
19
|
```typescript
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
20
|
+
import uaBrowser from 'ua-browser'
|
|
21
|
+
|
|
22
|
+
const info = uaBrowser()
|
|
23
|
+
// 或传入自定义 UA 字符串
|
|
24
|
+
const info = uaBrowser('Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...')
|
|
25
|
+
|
|
26
|
+
console.log(info)
|
|
27
|
+
// {
|
|
28
|
+
// browser: 'Chrome',
|
|
29
|
+
// version: '124.0.0.0',
|
|
30
|
+
// engine: 'Blink',
|
|
31
|
+
// os: 'Windows',
|
|
32
|
+
// osVersion: '10',
|
|
33
|
+
// device: 'PC',
|
|
34
|
+
// arch: 'x86_64',
|
|
35
|
+
// isWebview: false,
|
|
36
|
+
// isHeadless: false,
|
|
37
|
+
// isBot: false,
|
|
38
|
+
// botName: 'unknown',
|
|
39
|
+
// language: 'zh-CN',
|
|
40
|
+
// platform: 'Win32'
|
|
41
|
+
// }
|
|
122
42
|
```
|
|
123
43
|
|
|
124
|
-
##
|
|
44
|
+
## 命名导出(tree-shakeable)
|
|
125
45
|
|
|
126
46
|
```typescript
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
| 'MeeGo'
|
|
139
|
-
| 'Symbian'
|
|
140
|
-
| 'iOS'
|
|
141
|
-
| 'Chrome OS'
|
|
142
|
-
| 'WebOS'
|
|
47
|
+
import {
|
|
48
|
+
parseUA, // 纯函数,可注入环境上下文
|
|
49
|
+
isWebview, // 检测 Android Webview
|
|
50
|
+
isWechatMiniapp, // 检测微信小程序
|
|
51
|
+
getLanguage, // 获取浏览器语言
|
|
52
|
+
getWindowsVersion,// 异步获取 Windows 11/10 版本
|
|
53
|
+
detectBot, // 单独使用爬虫检测
|
|
54
|
+
detectArch, // 单独使用架构检测
|
|
55
|
+
detectHeadless, // 单独使用无头浏览器检测
|
|
56
|
+
VERSION // 当前版本号
|
|
57
|
+
} from 'ua-browser'
|
|
143
58
|
```
|
|
144
59
|
|
|
145
|
-
##
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
|
157
|
-
|
|
|
158
|
-
|
|
|
159
|
-
|
|
|
160
|
-
|
|
|
161
|
-
|
|
|
162
|
-
|
|
|
163
|
-
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
| 基于webkit和Qt的轻量级浏览器 | `Arora` |
|
|
169
|
-
| 来自日本的三引擎浏览器 | `Lunascape` |
|
|
170
|
-
| 轻量级跨平台浏览器 | `QupZilla` |
|
|
171
|
-
| 越南搜索引擎浏览器 | `Coc Coc` |
|
|
172
|
-
| 亚马逊电子书 | `Kindle` |
|
|
173
|
-
| Firefox浏览器的Debian再发布版 | `Iceweasel` |
|
|
174
|
-
| Konqueror | `Konqueror` |
|
|
175
|
-
| Iceape | `Iceape` |
|
|
176
|
-
| SeaMonkey | `SeaMonkey` |
|
|
177
|
-
| Epiphany | `Epiphany` |
|
|
178
|
-
| 360浏览器(手机版) | `360` |
|
|
179
|
-
| 360安全浏览器 | `360EE` |
|
|
180
|
-
| 360极速浏览器 | `360SE` |
|
|
181
|
-
| UC浏览器 | `UC` |
|
|
182
|
-
| QQ浏览器 | `QQBrowser` |
|
|
183
|
-
| QQ客户端 | `QQ` |
|
|
184
|
-
| 百度浏览器 | `Baidu` |
|
|
185
|
-
| 傲游浏览器 | `Maxthon` |
|
|
186
|
-
| 搜狗浏览器 | `Sogou` |
|
|
187
|
-
| 猎豹浏览器 | `Liebao` |
|
|
188
|
-
| 2345浏览器 | `2345Explorer` |
|
|
189
|
-
| 115浏览器 | `115Browser` |
|
|
190
|
-
| 世界之窗浏览器 | `TheWorld` |
|
|
191
|
-
| 小米浏览器 | `XiaoMi` |
|
|
192
|
-
| 夸克浏览器 | `Quark` |
|
|
193
|
-
| 旗鱼浏览器 | `Qiyu` |
|
|
194
|
-
| 微信手机客户端 | `Wechat` |
|
|
195
|
-
| 企业微信客户端 | `WechatWork` |
|
|
196
|
-
| 淘宝手机客户端 | `Taobao` |
|
|
197
|
-
| 支付宝手机客户端 | `Alipay` |
|
|
198
|
-
| 微博手机客户端 | `Weibo` |
|
|
199
|
-
| 豆瓣手机客户端 | `Douban` |
|
|
200
|
-
| 苏宁易购手机客户端 | `Suning` |
|
|
201
|
-
| 爱奇艺手机客户端 | `iQiYi` |
|
|
202
|
-
| 钉钉手机客户端 | `DingTalk` |
|
|
203
|
-
| 华为浏览器 | `Huawei` |
|
|
204
|
-
| Vivo浏览器 | `Vivo` |
|
|
205
|
-
| Firefox 下一代网络浏览器Nightly | `Firefox Nightly` |
|
|
206
|
-
| 微信小程序 | `Wechat Miniapp` |
|
|
60
|
+
## API
|
|
61
|
+
|
|
62
|
+
### `uaBrowser(ua?: string): EnvOption`
|
|
63
|
+
|
|
64
|
+
| 字段 | 类型 | 说明 |
|
|
65
|
+
| :-- | :-- | :-- |
|
|
66
|
+
| `browser` | `BrowserName` | 浏览器名称 |
|
|
67
|
+
| `version` | `string` | 浏览器版本 |
|
|
68
|
+
| `engine` | `EngineName` | 渲染内核 |
|
|
69
|
+
| `os` | `OsName` | 操作系统 |
|
|
70
|
+
| `osVersion` | `string` | 系统版本 |
|
|
71
|
+
| `device` | `DeviceName` | 设备类型 |
|
|
72
|
+
| `arch` | `ArchName` | CPU 架构 |
|
|
73
|
+
| `isWebview` | `boolean` | 是否为 Android Webview |
|
|
74
|
+
| `isHeadless` | `boolean` | 是否为无头/自动化浏览器 |
|
|
75
|
+
| `isBot` | `boolean` | 是否为爬虫/机器人 |
|
|
76
|
+
| `botName` | `BotName` | 爬虫名称 |
|
|
77
|
+
| `language` | `string` | 浏览器语言 |
|
|
78
|
+
| `platform` | `string` | 平台信息 |
|
|
79
|
+
|
|
80
|
+
## License
|
|
81
|
+
|
|
82
|
+
MIT
|