鸿蒙【HarmonyOS 5】 (React Native)的实战教程

一、环境配置

  1. 安装鸿蒙专属模板

    bashCopy Code

    npx react-native@0.72.5 init HarmonyApp --template react-native-template-harmony:ml-citation{ref="4,6" data="citationList"}

  2. 配置 ArkTS 模块路径

    entry/src/main/ets 目录下创建原生模块(下文示例)


二、实战:RN 调用鸿蒙传感器(ArkTS 原生模块)

1. 创建鸿蒙原生模块 SensorManager.ets

typescriptCopy Code

// entry/src/main/ets/sensors/SensorManager.ets import sensor from '@ohos.sensor'; export class SensorManager { // 暴露给 RN 的加速度计监听方法 static startAccelerometer(callback: (data: object) => void): void { sensor.on(sensor.SensorId.ACCELEROMETER, (data) => { callback({ x: data.x, y: data.y, z: data.z }); }); } }

2. RN 侧调用传感器(JS 代码)

javascriptCopy Code

// App.js import { NativeModules } from 'react-native'; const { SensorManager } = NativeModules; // 启动加速度监听 useEffect(() => { SensorManager.startAccelerometer(data => { console.log("加速度数据:", data.x, data.y, data.z); }); }, []);

3. 权限声明(关键步骤)

module.json5 中添加:

jsonCopy Code

{ "module": { "requestPermissions": [ { "name": "ohos.permission.ACCELEROMETER" } ] } }

‌:传感器需真机测试,模拟器无数据返回


三、鸿蒙 UI 组件封装(ArkTS + RN)

1. 创建鸿蒙原生组件 HarmonyButton.ets

typescriptCopy Code

// entry/src/main/ets/components/HarmonyButton.ets @Component export struct HarmonyButton { @State label: string = "Click Me" onClick: () => void = () => {} build() { Button(this.label) .width(150) .height(50) .onClick(() => this.onClick()) } }

2. 桥接到 React Native

javascriptCopy Code

// harmony-bridge.js import { requireNativeComponent } from 'react-native'; export default requireNativeComponent('HarmonyButton');

3. RN 中使用该组件

jsxCopy Code

// App.js import HarmonyButton from './harmony-bridge'; <HarmonyButton label="鸿蒙按钮" style={``{ width: 150, height: 50 }} onClick={() => alert('ArkTS 按钮被点击!')} />


四、调试技巧

  1. 日志查看

  2. bashCopy Code

  3. hdc shell hilog | grep "ReactNativeJS" # 过滤 RN 日志

  4. 性能分析

    • 使用 DevEco Profiler 监控 JS 线程负载(优化后渲染延迟降低 40%)

五、避坑指南

问题 解决方案
RN 无法加载鸿蒙组件 检查 harmony/components 路径无中文命名
传感器返回 null 真机需开启开发者模式的「传感器调试权限」
热更新失效 关闭 DevEco Studio 的 ArkCompiler 优化模式
相关推荐
二流小码农9 小时前
鸿蒙开发:以登录案例了解代码架构MVVM
android·ios·harmonyos
风华圆舞11 小时前
rawfile 资源与强类型词库加载器:schema / data / source 三层版本
harmonyos·arkui·resourcemanager·rawfile·arkts 编译·arkts 强类型
程序员黑豆11 小时前
鸿蒙应用开发:Grid组件实现九宫格布局教程
前端·华为·harmonyos
程序员黑豆13 小时前
鸿蒙应用开发:Flex 组件从入门到实战
前端·华为·harmonyos
<小智>13 小时前
鸿蒙多功能工具箱开发实战(二十)-性能优化与打包发布
ui·华为·harmonyos
不肥嘟嘟右卫门14 小时前
鸿蒙原生ArkTS布局方式之Popup+TextInput提示输入布局深度解析
华为·harmonyos
nullregedit16 小时前
原生鸿蒙像素画板实战 22:快捷键与鼠标交互
harmonyos·arkts·鸿蒙·bitart·像素画
在水一缸17 小时前
深度解析:OPEN NPO网络大模型架构与开发者实践指南
网络·人工智能·华为·架构·架构设计·open npo·网络大模型
光影少年17 小时前
react navite 页面跳转、传参、路由监听、导航栏自定义
前端·react native·react.js
●VON17 小时前
鸿蒙 PC Markdown 编辑器图片粘贴:从系统剪贴板到标准相对链接
华为·编辑器·harmonyos·鸿蒙