Skip to content

isHarmony

检测当前是否为纯血鸿蒙系统。

使用方法

typescript
import { isHarmony } from '@fu/matrix';

if (isHarmony()) {
  // 纯血鸿蒙系统特有的处理
  useHarmonyAPI();
} else {
  // 其他系统的处理
  useDefaultAPI();
}

实现原理

通过检查 userAgent(统一转为小写)中是否包含鸿蒙相关标识且不包含 Android 来判断:

  • 当 UA 中包含以下任一标识且不包含 android 时,认为是纯血鸿蒙:
    • harmonyos
    • openharmony
    • hongmeng
    • hexin_harmonyos
  • 如果同时包含鸿蒙标识和 android,则认为是套皮鸿蒙

返回值

  • true: 当前系统是纯血鸿蒙
  • false: 当前系统不是纯血鸿蒙

使用场景

  1. API 调用选择
typescript
const api = isHarmony() 
  ? harmonyAPI 
  : defaultAPI;
  1. 功能适配
typescript
if (isHarmony()) {
  // 使用鸿蒙特有功能
  useHarmonyFeatures();
}

注意事项

  1. 服务端环境下默认返回 false
  2. 发生错误时返回 false
  3. 只有纯血鸿蒙系统才会返回 true
  4. 套皮鸿蒙会被识别为 Android