HarmonyOS鸿蒙Next中如何判断当前系统是不是5.0以下的版本

HarmonyOS鸿蒙Next中如何判断当前系统是不是5.0以下的版本 我现在需要判断当前系统是不是鸿蒙5.0以下的版本去做适配,因为5.0以下还是属于安卓那一套嘛,但是手机系统里面写的又是harmonyOS,我现在需要判断一下5.0以下的版本去做一些兼容性处理,是否可以通过useArgent包含Android且包含HarmonyOS的字段去判断?图一是鸿蒙4.2.0的版本的useArgent cke_3539.png 图二是鸿蒙6.0.0的版本的useArgent cke_6319.png 图三是安卓的useArgent cke_10448.png


更多关于HarmonyOS鸿蒙Next中如何判断当前系统是不是5.0以下的版本的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

建议通过OpenHarmony关键字识别是否是HarmonyOS设备,同时可以通过DeviceType识别设备类型用于不同设备上的页面显示(ArkWeb关键字表示设备使用的web内核,OpenHarmony关键字表示设备使用的操作系统,因此推荐通过OpenHarmony关键字识别是否是HarmonyOS设备)。

具体查看:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/web-default-useragent

更多关于HarmonyOS鸿蒙Next中如何判断当前系统是不是5.0以下的版本的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


distributionOSApiVersion
试试这个

在HarmonyOS鸿蒙Next中,判断系统版本低于5.0,可以使用AbilityContextgetSystemVersion方法获取版本号字符串,然后解析主版本号进行数值比较。具体实现是获取版本字符串后,提取主版本号并转换为整数,判断其是否小于5。

在HarmonyOS Next中,判断系统是否为5.0以下版本(即HarmonyOS 4.x等兼容安卓的版本),可以通过检查User-Agent字符串来实现,但这不是最推荐或最可靠的方法。

更标准的做法是使用HarmonyOS提供的API来获取系统版本信息。以下是具体方法:

推荐方法:使用system.version API

在HarmonyOS Next的ArkTS/JS开发中,可以通过@ohos.system.version模块获取系统版本信息,并进行判断。

import systemVersion from '@ohos.system.version';

// 获取系统版本信息
let versionInfo = systemVersion.getSystemVersion();
let majorVersion = versionInfo.major; // 主版本号,例如 4, 5, 6

// 判断是否为5.0以下版本
if (majorVersion < 5) {
  console.log('当前系统是HarmonyOS 5.0以下版本,需要做兼容处理');
  // 执行兼容性代码
} else {
  console.log('当前系统是HarmonyOS 5.0或以上版本');
  // 执行标准代码
}

关于User-Agent的判断

从你提供的图片可以看出:

  • HarmonyOS 4.2.0的User-Agent包含"Android"和"HarmonyOS"
  • HarmonyOS 6.0.0的User-Agent只包含"HarmonyOS",不包含"Android"
  • 纯安卓系统的User-Agent只包含"Android"

因此,你可以通过检查User-Agent是否**同时包含"Android"和"HarmonyOS"**来判断是否为HarmonyOS 5.0以下版本:

// 通过User-Agent判断(备选方案)
let userAgent = navigator.userAgent;
if (userAgent.includes('HarmonyOS') && userAgent.includes('Android')) {
  // 这是HarmonyOS 5.0以下版本
  console.log('检测到HarmonyOS 5.0以下版本(兼容安卓模式)');
} else if (userAgent.includes('HarmonyOS') && !userAgent.includes('Android')) {
  // 这是HarmonyOS 5.0或以上版本(纯HarmonyOS)
  console.log('检测到HarmonyOS 5.0或以上版本(纯HarmonyOS)');
}

建议

  1. 优先使用system.version API,这是官方推荐的方法,更准确可靠

  2. User-Agent方法可以作为备用方案,但需要注意:

    • User-Agent可能被修改或伪装
    • 不同浏览器或WebView可能有不同的User-Agent格式
    • 未来版本可能会改变User-Agent的格式
  3. 对于需要区分"兼容安卓模式"和"纯HarmonyOS模式"的场景,建议同时检查系统版本和API可用性,而不仅仅依赖User-Agent

这种方法可以确保你的应用能够正确识别系统版本,并执行相应的兼容性处理。

回到顶部