近期 RN 三方库的 HarmonyOS 移植成为关注焦点,经梳理发现,当前主流方案为RN 三方库补丁化移植,既能保障跨平台兼容性,又能高效实现 HarmonyOS 适配。
RN 三方库的 HarmonyOS 适配需确保不影响其在 iOS、Android 等原有平台的使用,因此采用补丁化实现方案。项目中会并存两个独立包:例如react-native-svg(原生跨平台库)与@react-native-oh-tpl/react-native-svg(HarmonyOS 适配补丁库)。
其中,@react-native-oh-tpl/react-native-svg仅运行于 HarmonyOS 平台,本质是在原库基础上叠加 HarmonyOS 适配补丁:其他平台仍沿用原库逻辑,不受影响;HarmonyOS 侧则自动加载补丁内的适配代码,从而实现单套代码的跨平台兼容。
只需在补丁库的package.json中添加harmony字段配置别名,即可完成适配映射:
{
"name": "@react-native-oh-tpl/react-native-svg",
"harmony": {
"alias": "react-native-svg"
},
// 其他配置项
}
React Native for HarmonyOS(RNOH)会根据平台自动重定向依赖:当开发者在代码中使用import Svg from "react-native-svg"时,HarmonyOS 平台会自动加载@react-native-oh-tpl/react-native-svg,其他平台则沿用原生库,无需修改业务代码。
对于三方库使用者而言,仅需按照适配文档完成补丁库的安装与配置,即可无缝实现 HarmonyOS 适配,原有业务逻辑、跨平台调用方式完全不受影响,大幅降低迁移成本。
关于更多的内容,大家可以关注:
https://github.com/react-native-oh-library