Skip to content

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 系统处理
}

系统版本号

系统版本号格式示例
iOSX.Y14.6
AndroidX.Y11
HarmonyOSX.Y.Z2.2.0
Windows10/11 或 NT X.Y10/11
macOSX.Y.Z10.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 的区别

特性getOSgetPlatform
返回内容操作系统 + 版本号设备平台类型
细分程度操作系统设备类型(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) ...