detectOS
检测操作系统类型,支持识别 Windows、macOS、Linux、iOS 和 Android。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.userAgent | string | 用户代理字符串 |
环境要求
- 浏览器环境: 需要访问
navigator.userAgent
函数签名
typescript
function detectOS(deps: DetectOSDeps): OSType
interface DetectOSDeps {
userAgent: string
}
type OSType = 'Windows' | 'macOS' | 'Linux' | 'iOS' | 'Android' | 'Unknown'参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
deps | DetectOSDeps | 是 | 依赖对象 |
deps.userAgent | string | 是 | 用户代理字符串,通常从 navigator.userAgent 获取 |
返回值
| 类型 | 说明 |
|---|---|
OSType | 操作系统类型,可能的值:'Windows'、'macOS'、'Linux'、'iOS'、'Android' 或 'Unknown' |
工作原理
- 检查 User Agent 是否包含 iOS 设备标识(iPhone、iPad、iPod)
- 检查 User Agent 是否包含 Android 标识
- 检查 User Agent 是否包含 macOS 标识(Mac OS X、Macintosh)
- 检查 User Agent 是否包含 Windows 标识
- 检查 User Agent 是否包含 Linux 标识
- 如果都不匹配,返回
'Unknown'
检测优先级按照移动端优先的原则,先检测 iOS 和 Android,再检测桌面系统。
异常
无异常抛出