Skip to content

内置支持列表

所有内置定义均来自源码 src/constants/,与运行时行为严格一致。

浏览器

检测优先级从低到高,同一 UA 匹配多个规则时优先级高者胜出。App 内嵌 Webview(微信、钉钉等)优先级最高,确保不被通用 Chrome 覆盖。

通用浏览器

浏览器BrowserName优先级
Apple SafariSafari10
Google Chrome / Chrome iOSChrome20
Microsoft IEIE30
Microsoft Edge(全平台)Edge40
Mozilla Firefox / Firefox iOSFirefox50
Firefox FocusFirefox Focus55
ChromiumChromium60
OperaOpera70
VivaldiVivaldi80
Yandex 浏览器Yandex90
Samsung InternetSamsung Internet92
DuckDuckGo 浏览器DuckDuckGo94
PuffinPuffin96
Coc Coc(越南)Coc Coc130
Amazon Kindle / SilkKindle140
KonquerorKonqueror160
SeaMonkeySeaMonkey180
EpiphanyEpiphany190
傲游浏览器Maxthon200

国内浏览器

浏览器BrowserName优先级
360 浏览器(手机版)360300
360 安全浏览器360SE310
360 极速浏览器360EE320
UC 浏览器UC330
QQ 浏览器QQBrowser340
QQ 客户端内置QQ345
百度浏览器 / 百度 AppBaidu350
搜狗浏览器Sogou360
猎豹浏览器Liebao370
2345 浏览器2345Explorer380
115 浏览器115Browser390
世界之窗TheWorld400
小米 MIUI 浏览器XiaoMi410
Vivo 浏览器Vivo420
华为浏览器Huawei430
OPPO / OnePlus 浏览器OPPO440
夸克浏览器Quark450
旗鱼浏览器Qiyu460

App 内嵌 Webview

应用BrowserName优先级
企业微信WechatWork500
微信Wechat510
淘宝Taobao520
支付宝Alipay530
微博Weibo540
豆瓣Douban550
苏宁易购Suning560
爱奇艺iQiYi570
钉钉DingTalk580
抖音Douyin590
哔哩哔哩Bilibili592
快手Kuaishou594
小红书Xiaohongshu596
飞书 / LarkFeishu597
今日头条Toutiao598
京东(拼购)JD599
美团Meituan600

操作系统

操作系统OsName版本示例
WindowsWindows10118.187VistaXP2000
AndroidAndroid141312...
iOSiOS17.416.0...
macOSMacOS10.15.7...
HarmonyOSHarmonyOS234(Android 版本映射);5.0.0(HarmonyOS Next 直接提取)
OpenHarmonyOpenHarmony4.13.2...
Chrome OSChrome OS
TizenTizen6.05.5...(三星智能电视 / 可穿戴)
KaiOSKaiOS2.53.0...(发展中国家功能机)
LinuxLinux
UbuntuUbuntu
DebianDebian
FreeBSDFreeBSD
Windows PhoneWindows Phone
BlackBerryBlackBerry
MeeGoMeeGo
SymbianSymbian
WebOSWebOS

HarmonyOS 版本映射

HarmonyOS 2/3/4 基于 Android 兼容层,UA 含 Android 字段,版本通过映射表推算:

Android NT 版本HarmonyOS 版本
102
113
123
134

HarmonyOS Next(5.0+)UA 不含 Android 字段,版本从 HarmonyOS 5.0.0 直接提取。

Windows 版本映射

UA 中的 Windows NT 版本号映射如下:

NT 版本显示版本
10.010(需 getWindowsVersion() 区分 10/11)
6.38.1
6.28
6.17
6.0Vista
5.2 / 5.1XP
5.02000

渲染内核

内核EngineName代表浏览器
BlinkBlinkChrome 28+、Edge(新版)、Opera 15+
WebKitWebKitSafari、iOS 所有浏览器
GeckoGeckoFirefox
TridentTridentIE
EdgeHTMLEdgeHTMLEdge(旧版,< 79)
PrestoPrestoOpera(旧版,< 15)
KHTMLKHTMLKonqueror
ArkWebArkWebHarmonyOS Next 内置渲染引擎(部分 UA 显式携带)

Blink 升级

Chrome 28 之前基于 WebKit。检测到 Chrome 28+ 时,内核自动升级为 Blink

ArkWeb

ArkWeb 仅在 HarmonyOS Next 的部分 UA 中显式出现 ArkWeb token。无该 token 的 HarmonyOS UA 仍会正确识别为 Blink(基于 Chromium 内核)。


设备类型

类型DeviceName判断规则
手机MobileUA 含 MobiiPh
平板TabletUA 含 iPadTabletPad;或 Android 无 Mobile 标识;或 iPadOS(MacIntel + 触点 > 1)
智能电视TVUA 含 SMART-TVHbbTVSmartTVAndroid TVGoogleTV
桌面PC以上均不匹配

CPU 架构

v1.1.0 起采用四层优先级检测链,前层成功则跳过后层:

层级数据来源覆盖场景
1UA Client Hints(navigator.userAgentDataChrome / Edge,精确
2WebGL 渲染器字符串解决 Apple Silicon vs Intel Mac 问题
3navigator.platform 推断同步,覆盖 iPhone / iPad / Linux aarch64
4UA 字符串模式匹配兜底,与 v1.0 行为一致

输出值:

架构ArchName常见 UA / 信号特征
ARM 64 位arm64Client Hints arm/64;WebGL Apple M1/M2/A15;platform iPhone/iPad;UA aarch64arm64
ARM 32 位armClient Hints arm/32;platform arm;UA ARM
x86 64 位x86_64Client Hints x86/64;WebGL Intel/AMD/NVIDIA;platform Win64;UA x86_64WOW64
x86 32 位x86Client Hints x86/32;platform Win32;UA i686
未知unknown以上均无匹配

爬虫 / 机器人

搜索引擎爬虫

爬虫BotName归属
GooglebotGooglebotGoogle
Bingbot / BingPreviewBingbotMicrosoft
BaiduspiderBaiduspider百度
BytespiderBytespider字节跳动
YandexBotYandexBotYandex
DuckDuckBotDuckDuckBotDuckDuckGo
SlurpSlurpYahoo
Sogou SpiderSogou搜狗
360Spider360Spider360
PetalBotPetalBot华为
ApplebotApplebotApple

AI / LLM 爬虫

爬虫BotName归属
GPTBotGPTBotOpenAI
ClaudeBotClaudeBotAnthropic
PerplexityBotPerplexityBotPerplexity AI
CCBotCCBotCommon Crawl
AdsBot-GoogleAdsBotGoogle Ads

社交媒体爬虫

爬虫BotName归属
facebookexternalhit / FacebookBotFacebookbotMeta
TwitterbotTwitterbotX (Twitter)
LinkedInBotLinkedInBotLinkedIn

SEO 工具爬虫

爬虫BotName归属
SemrushBotSemrushBotSemrush
AhrefsBotAhrefsBotAhrefs
MJ12botMJ12botMajestic

通用兜底

包含 botcrawlerspidercrawlingscraper(大小写不敏感)关键词的 UA 将被识别为 GenericBot


无头 / 自动化浏览器

以下 UA 特征会使 isHeadless 返回 true

特征场景
HeadlessChromeChrome 无头模式(--headless
Headless通用无头标识
PhantomJSPhantomJS
Electron/Electron 应用
PlaywrightPlaywright 自动化测试
jsdom/Node.js DOM 模拟(Jest / Vitest 测试环境)
Selenium部分 Selenium / WebDriver 配置

注意

Cypress、WebdriverIO 默认不修改 UA,无法从 UA 层面检测。现代隐身模式(如 puppeteer-stealth)可绕过以上所有标识,本检测仅覆盖未经伪装的常见场景。


运行时浏览器兼容性

本节说明 ua-browser 自身代码能在哪些浏览器中运行,与「能检测哪些浏览器」是两个独立问题。

核心函数

parseUA()detectBrowser()detectOs() 等所有同步检测函数为纯正则运算,无任何浏览器 API 依赖,可在所有现代 JS 环境(浏览器、Node.js、Deno、SSR)中运行。

构建产物 JS 语法

特性源码构建产物(target: es2018
可选链 ?.转译为 (x == null ? void 0 : x.y)
空值合并 ??转译为等价 ES5 写法
async / await保留(ES2017,在 es2018 目标范围内)

最低语法兼容版本: Chrome 63 / Safari 12 / Firefox 55 / Edge 79(Chromium)

getEnvContext() 各 API 兼容性

APIChromeSafariFirefoxEdge说明
canvas + measureText9+3.1+3.5+12+字体探针,用于确认 OS 检测结果
WebGL 渲染器9+8+4+12+解决 Apple Silicon vs Intel Mac
window.matchMedia9+5.1+6+12+触屏 / 悬停能力检测
navigator.hardwareConcurrency37+10.1+48+15+CPU 核心数
navigator.deviceMemory63+79+内存大小,Chrome 独有
userAgentData.getHighEntropyValues90+90+UA Client Hints,最精确的 arch 来源

降级策略

所有 DOM API 调用均包裹在 try/catchtypeof window !== 'undefined' 判断中。Safari / Firefox 不支持的 API 会静默跳过,getEnvContext() 在任何环境下都不会抛出异常。

parseHeaders() 兼容性

纯服务端函数,无浏览器 API 依赖。Client Hints 头部(Sec-CH-UA-Arch 等)仅 Chrome / Edge 90+ 会自动发送;Safari / Firefox 不发送,此时 arch 等字段退回到 UA 字符串匹配结果。

Released under the MIT License.