Appearance
getOS
获取当前操作系统信息,包括系统类型和版本号。
返回值类型
typescript
interface OSInfo {
sys: OS;
version: string;
}
type OS = 'ios' | 'android' | 'harmonyos' | 'windows' | 'mac' | 'linux' | 'unknown';返回值说明
'ios': iOS 系统(iPhone/iPad/iPod)'android': Android 系统'harmonyos': 鸿蒙系统(纯血鸿蒙)'windows': Windows 系统'mac': macOS 系统'linux': Linux 系统'unknown': 未知操作系统
使用方法
typescript
import { getOS } from '@fu/matrix';
const { sys, version } = getOS();
if (sys === 'ios') {
// iOS 系统处理
}系统版本号
| 系统 | 版本号格式 | 示例 |
|---|---|---|
| iOS | X.Y | 14.6 |
| Android | X.Y | 11 |
| HarmonyOS | X.Y.Z | 2.2.0 |
| Windows | 10/11 或 NT X.Y | 10/11 |
| macOS | X.Y.Z | 10.15.7 |
| Linux | 空字符串 | '' |
使用场景
1. 系统特定功能
typescript
const { sys, version } = getOS();
if (sys === 'ios') {
// iOS 系统处理
} else if (sys === 'android') {
// Android 系统处理
} else if (sys === 'harmonyos') {
// 鸿蒙系统处理
}2. 系统版本判断
typescript
const { sys, version } = getOS();
if (sys === 'ios' && parseFloat(version) >= 14) {
// iOS 14+ 特有功能
}3. 多系统适配
typescript
const osConfig = {
ios: { featureX: true, featureY: false },
android: { featureX: false, featureY: true },
harmonyos: { featureX: true, featureY: true },
windows: { featureX: true, featureY: true },
mac: { featureX: true, featureY: true },
linux: { featureX: true, featureY: false },
unknown: { featureX: false, featureY: false }
}[getOS().sys];与 getPlatform 的区别
| 特性 | getOS | getPlatform |
|---|---|---|
| 返回内容 | 操作系统 + 版本号 | 设备平台类型 |
| 细分程度 | 操作系统 | 设备类型(PC/手机) |
| 适用场景 | 系统 API 适配 | 响应式布局 |
typescript
// getPlatform 返回设备平台
getPlatform() // 'pc' | 'harmony' | 'iphone' | 'gphone' | 'unknown'
// getOS 返回操作系统
getOS() // { sys: 'ios', version: '14.6' }注意事项
- 该函数通过解析 UserAgent 判断操作系统类型
- 在服务器端(无 navigator 对象)时返回
{ sys: 'unknown', version: '' } - 检测时不区分大小写
- 可能受到用户代理伪装的影响
- Windows 版本号根据 NT 版本映射:NT 10.0 对应 Windows 10/11
UserAgent 示例
iOS: Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) ...
Android: Mozilla/5.0 (Linux; Android 11; Pixel 5) ...
HarmonyOS: Mozilla/5.0 (HarmonyOS; HarmonyOS 2.2.0) ...
Windows: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...
macOS: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ...
Linux: Mozilla/5.0 (X11; Linux x86_64) ...