HarmonyOS 如何加载RN构建出来的bundle文件

项目中有一部分功能时通过React Native实现的。React Native会打成bundle文件的形式提供给HarmonyOS调用。请问HarmonyOS中该如何实现类似功能?

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

方式一:本地加载bundle。

方式二:使用Metro服务加载bundle。

方式三:加载沙箱目录的bundle。

本地加载bundle:

将bundle文件和assets图片放在entry/src/main/resources/rawfile路径下,在 entry/src/main/ets/pages/Index.ets中使用。

使用Metro服务加载bundle:

在项目目录下运行生成bundle文件的命令。运行成功后,会在项目目录/harmony/entry/src/main/resources/rawfile 目录下生成bundle.harmony.js和assets 文件夹,assets用来存放图片。同时该条指令也会自动运行Codegen命令。

Codegen生成的文件默认放在项目目录/entry目录下,其中ArkTS的代码存放在了entry\oh_modules@rnoh\react-native-openharmony\generated目录中,cpp的代码存放在entry\src\main\cpp\generated目录中。

加载沙箱目录的bundle:

应用沙箱是一种以安全防护为目的的隔离机制,避免数据受到恶意路径穿越访问。在这种沙箱的保护机制下,应用可见的目录范围即为“应用沙箱目录”。

开发者在应用开发调试时,需要向应用沙箱下推送一些文件以期望在应用内访问或测试,此时有两种方式:

第一种:可以通过 DevEco Studio向应用安装路径中放入目标文件,详见应用安装资源访问。

第二种:在具备设备环境时,可以使用另一种更为灵活的方式,通过hdc工具来向设备中应用沙箱路径推送文件。推送命令如下,其中,沙箱路径可通过向应用沙箱推送文件查询:

hdc file send ${待推送文件的本地路径} ${沙箱路径}。

加载沙箱目录bundle,需要在RN App的 jsBundlePrivider参数中使用new。

FileJSBundleProvider(‘bundlePath’)将bundle注册进框架,并运行bundle。

分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 加载RN沙盒路径资源文件
191浏览 • 1回复 待解决
RN工程,Metro跑bundle无法识别应用
221浏览 • 1回复 待解决
HarmonyOS RN功能依赖包加载失败
83浏览 • 1回复 待解决
HarmonyOS 地图加载出来
32浏览 • 1回复 待解决
HarmonyOS 加载html,图片显示不出来
34浏览 • 1回复 待解决
HarmonyOS Lottie动画加载出来
35浏览 • 1回复 待解决
如何获取指定Bundle NameAbility信息
2005浏览 • 1回复 待解决
自定义构建任务写入文件
837浏览 • 1回复 待解决