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 CHANGED
@@ -1,206 +1,82 @@
1
1
  # uaBrowser - 浏览器检测
2
2
 
3
- 通过userAgent和浏览器环境变量检测浏览器、系统及设备类型的常用工具
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
- ### npm
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
- type engine =
115
- | 'Trident'
116
- | 'Presto'
117
- | 'WebKit'
118
- | 'Gecko'
119
- | 'KHTML'
120
- | 'Blink'
121
- | 'EdgeHTML'
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
- type os =
128
- | 'Windows'
129
- | 'Linux'
130
- | 'MacOS'
131
- | 'Android'
132
- | 'HarmonyOS'
133
- | 'Ubuntu'
134
- | 'FreeBSD'
135
- | 'Debian'
136
- | 'Windows Phone'
137
- | 'BlackBerry'
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
- ```typescript
148
- type device =
149
- | 'Mobile'
150
- | 'Tablet'
151
- | 'Pc'
152
- ```
153
-
154
- ## 浏览器支持
155
-
156
- | 浏览器 | 标识 |
157
- | :-- | :-- |
158
- | 苹果系统默认浏览器 | `Safari` |
159
- | 谷歌浏览器 | `Chrome` |
160
- | 微软IE浏览器 | `IE` |
161
- | 微软新一代浏览器 | `Edge` |
162
- | 火狐浏览器 | `Firefox` |
163
- | 火狐浏览器 | `Firefox Focus` |
164
- | 谷歌浏览器开源版 | `Chromium` |
165
- | Opera浏览器 | `Opera` |
166
- | Opera联合创始人发布 | `Vivaldi` |
167
- | 俄罗斯最大搜索引擎Yandex出品 | `Yandex` |
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