写点什么

已有 React Native 工程如何适配 HarmonyOS

  • 2025-12-19
    北京
  • 本文字数:2142 字

    阅读完需:约 7 分钟

已有React Native工程如何适配HarmonyOS

本文原创发布在华为开发者联盟社区,欢迎前往与更多开发者进行互动。更多相关问题可点击原帖进行交流:已有React Native工程如何适配HarmonyOS 。

问题描述

概述

React Native框架是一个基于 JavaScript 与 React 的开源框架,主要用于开发原生渲染的移动应用程序。React Native for OpenHarmony(RNOH)在 React Native 原有能力之上,进行了深度的鸿蒙化适配与扩展,使开发者能够基于熟悉的 React 技术栈,高效地构建适用于 HarmonyOS 的应用程序。

当前 RNOH 适配的 React Native 有两个版本 0.72.5 和 0.77.1。0.72.5 版本框架和三方库已经比较成熟,最新的版本为 0.72.99,如果当前项目的 RN 版本低于该版本,可将当前项目的 RN 版本升级后,使用该版本进行 HarmonyOS 应用的构建,升级过程可参考RN升级需要开发者适配整理。RNOH 会不断迭代和更新。最新版本及使用说明可查看ohos_react_native文档

下文将详细描述如何基于已有的 RN 工程适配 HarmonyOS:

1、环境变量配置

  • Windows 环境:

在此电脑>属性>高级系统设置>高级>环境变量中,在系统变量中点击新建,添加变量名为:RNOH_C_API_ARCH,变量值为 1。

  • Mac 环境:

a.编辑 bash 配置文件(例如~/.bash_profile、~/.bashrc 或~/.zshrc)并在末尾添加以下行:

export RNOH_C_API_ARCH=1

b.确认环境变量是否成功设置。在终端中输入以下命令:

echo $RNOH_C_API_ARCH

如果输出为 1,则表示环境变量已成功设置。

2、安装 HarmonyOS 版 RN(RNOH)

打开 RN 工程,在根目录终端窗口中先执行 npm install react-native@0.72.5 将原 RN 版本修改为 0.72.5,再执行 npm install @react-native-oh/react-native-harmony 安装 RNOH,详细可参考RNOH依赖引入

3、新建 HarmonyOS 工程

在 RN 工程根目录新建 harmony 文件夹,并在该文件夹中初始化一个 HarmonyOS 工程,详细步骤参考创建HarmonyOS工程补充ArkTS侧代码章节


目录结构:

RN                                               // RN工程├──harmony                                       // harmony工程│  ├──entry/src/main/cpp                         // native相关配置│  │  ├──generated                               // codegen自动生成的桥接代码│  │  ├──CMakeLists.txt│  │  └──PackageProvider.cpp│  ├──entry/src/main/ets│  │  ├──entryability│  │  │  └──EntryAbility.ets│  │  ├──pages│  │  │  └──Index.ets                            // harmony侧入口│  │  └──RNPackagesFactory.ets│  └──entry/src/main/resources/rawfile           // bundle、静态资源存放目录├──App.tsx ├──index.js                                      // 入口文件├──metro.config.js                               // 打包配置
复制代码

4、三方库替换

将原工程中的三方库替换为适配 HarmonyOS 的三方库版本,根据库名在RNOH三方库文档中搜索。文档中没有的三方库说明未进行适配,若为纯 JS 三方库可直接使用原库,否则建议优先在已适配库中寻找替代库。三方库的使用方法请参考 Markdown 文档中的步骤进行安装配置,需注意部分三方库需要使用Codegen生成桥接代码。

5、添加 RN 工程打包命令及打包配置

  • 打开根目录下的 package.json,在 scripts 下新增 RNOH 打包命令:

"dev": "react-native bundle-harmony --dev"

  • 修改 metro.config.js(建议不同平台使用不同的 metro 配置文件)


const {mergeConfig, getDefaultConfig} = require('@react-native/metro-config');const {createHarmonyMetroConfig} = require('@react-native-oh/react-native-harmony/metro.config');
/*** @type {import("metro-config").ConfigT}*/const config = {  transformer: {    getTransformOptions: async () => ({      transform: {        experimentalImportSupport: false,        inlineRequires: true,      },    }),  },};
module.exports = mergeConfig(getDefaultConfig(__dirname), createHarmonyMetroConfig({  reactNativeHarmonyPackageName: '@react-native-oh/react-native-harmony',}), config);
复制代码

6、与平台相关代码适配

7、打包运行

  • 执行以下命令生成 bundle 和桥接代码:

npm run dev

npm run codegen

  • 打开 Harmony 工程,连接真机并运行工程 

    点击 File > Project Structure,在弹窗界面点击 Signing Configs,勾选 Support OpenHarmony 和 Automatically generate signature,然后点击 Sign In 登录华为账号,并签名。

    等待工程依赖同步完成后,点击运行图标执行 run entry 运行工程。

2025-12-19 11:337

评论

发布
暂无评论

微擎面板:免费商用级,重构企业级服务器运维新体验

微擎应用市场

从云原生到小程序生态:容器技术驱动的应用开发变革

xuyinyin

金融新纪元:AI正在重塑金融服务业的未来

新消费日报

让通义千问3帮忙算笔账:中小研发团队用云消息队列比自建开源省多少?

阿里巴巴云原生

阿里云 云原生 云消息队列

普华永道发布2025年全球人工智能岗位晴雨表

财见

HarmonyOS实战:腾讯IM之消息删除、撤回和重发(三)

IT小码哥

HarmonyOS HarmonyOS NEXT

(四)元模型建模理论

KaYa

NocoBase v1.7.0 正式版发布

NocoBase

开源 低代码 零代码 插件 版本更新

RS485总线是否必须加120Ω终端电阻

开源能源管理系统

开源 能源管理

Grafana与MyEMS的比较分析

开源能源管理系统

开源 能源管理

制造与物流企业拥抱AI技术,提升条码读取性能

财见

找外包做软件≠做产品!90%的客户理解错了

程序员郭顺发

别再为老项目重构熬秃头,1天解锁Java智能改造技能!

飞算JavaAI开发助手

还不懂什么是“进销存”吗?一文带你读懂!

积木链小链

数字化转型 智能制造 生产管理 进销存管理

MyEMS开源能源管理系统 + EG200 4G网关

开源能源管理系统

开源 能源管理

开源能源管理系统在安全自主可控方面的重要性

开源能源管理系统

开源 能源管理

飞算JavaAI 炫技赛重磅回归!用智能编码攻克老项目重构难题

飞算JavaAI开发助手

人工智能 Java' 活动推荐

MyEMS能耗数据上报省市重点用能单位能耗在线监测系统平台

开源能源管理系统

开源 能源管理

被需求变更“拖垮”的项目,终于有救了!

敏捷开发

需求管理 #项目管理 禅道项目管理软件 需求跟踪工具

MSE 铂金版:全面拥抱 AI,SLA 99.99%,零信任安全

阿里巴巴云原生

阿里云 云原生 nacos MSE

实现企业级 MCP 服务统一管理和智能检索的实践

阿里巴巴云原生

阿里云 云原生 nacos MSE

放弃「人盯人」,把控项目又有怎样的解题思路?

禅道项目管理

项目管理 甘特图 项目管理软件 禅道 甘特图软件

MCP Server On FC 之旅第 4 站:长连接闲置计费最高降低 87% 成本的技术内幕

阿里巴巴云原生

阿里云 云原生 函数计算

华为云APIG赋能MCP, 开启“即插即用”智能协作新时代

华为云开发者联盟

Kuikly鸿蒙版正式开源 —— 揭秘卓越性能适配之旅

HarmonyOS开发者

HarmonyOS

开启报名|Nacos3.0 开源开发者沙龙 Agent&MCP 专场

阿里巴巴云原生

阿里云 开源 云原生 nacos

IDC报告:忆联狂揽中国企业级SSD市场三连冠,自有品牌出货量同比激增117%

财见

CSM 与 CSPO 认证深度解析:角色职责、技能差异与职业路径指南

ShineScrum

FlagOS新升级:统一通信库FlagCX,全面提升多元算力统一通信技术生态

智源研究院

人工智能 开源 通信

json 支持复杂结构预览、大模型服务部署体验优化|ModelWhale 版本更新

ModelWhale

数据处理工具

记录第一次公司内部分享:如何基于大模型搭建企业+AI业务

程序员海军

大模型 #AI #DeepSeek

已有React Native工程如何适配HarmonyOS_HarmonyOS_HarmonyOS_InfoQ精选文章