HarmonyOS TurboModules使用问题
一.参照demo配置了app项目后,app编译报错:
1 ERROR: ArkTS:ERROR File: /Users/a1234/Documents/xiaopu/ShopDiary/harmony-shopdairy/entry/src/main/ets/RNPackagesFactory.ts:34:42 Importing ArkTS files in JS and TS files is forbidden.
- 1.
二.rn侧没有生成cpp侧的胶水代码:在rn中也使用了。
SampleTurboModule.registerFunction(value => {
console.log('value', value)
})
- 1.
- 2.
- 3.
这个方法,但是ohpm run codegen的时候没有生成cpp层的胶水代码。
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS RichEditor 使用问题
1190浏览 • 1回复 待解决
HarmonyOS AudioCapturer使用问题
609浏览 • 1回复 待解决
HarmonyOS RSA使用问题
474浏览 • 1回复 待解决
HarmonyOS Navigation 使用问题
1177浏览 • 1回复 待解决
HarmonyOS CustomDialogController使用问题
518浏览 • 1回复 待解决
HarmonyOS resourceManager使用问题
1298浏览 • 1回复 待解决
HarmonyOS Worker使用问题
658浏览 • 1回复 待解决
HarmonyOS地图使用问题
977浏览 • 1回复 待解决
HarmonyOS soundpool使用问题
1160浏览 • 1回复 待解决
HarmonyOS @Link使用问题
667浏览 • 1回复 待解决
HarmonyOS websocket使用问题
1036浏览 • 1回复 待解决
HarmonyOS eventHub使用问题
906浏览 • 1回复 待解决
HarmonyOS SideBarContainer使用问题
656浏览 • 1回复 待解决
HarmonyOS lottie使用问题
1039浏览 • 1回复 待解决
HarmonyOS Navigation使用问题
1262浏览 • 1回复 待解决
HarmonyOS Imageknife使用问题
732浏览 • 1回复 待解决
HarmonyOS ProtoBuffer使用问题
973浏览 • 1回复 待解决
HarmonyOS RichEditor使用问题
572浏览 • 1回复 待解决
HarmonyOS textpicker使用问题
727浏览 • 1回复 待解决
HarmonyOS Slide使用问题
912浏览 • 1回复 待解决
HarmonyOS filePreview使用问题
1034浏览 • 1回复 待解决
HarmonyOS Slider使用问题
742浏览 • 1回复 待解决
HarmonyOS @Track使用问题
541浏览 • 1回复 待解决
HarmonyOS onAreaChange使用问题
1499浏览 • 1回复 待解决
HarmonyOS jsbridge使用问题
722浏览 • 1回复 待解决
编译报错是因为在RNPackagesFactory.ts文件中引入了ArkTS文件。可以手动生成Codegen代码,参考指导文件中的自定义TurboModule。
示例参考:
NativeSampleTurboModuleSpecJSI创建名为SampleTurboModuleSpec.h的声明文件,导出NativeSampleTurboModuleSpecJSI:
SampleTurboModuleSpec.cpp实现,注意MethodMetadata的第⼀个参数是⾃定义⽅法的参数个数:
SampleTurboModulePackage.h提供createTurboModuleFactoryDelegate:
SampleTurboModulePackage.cpp实现C++层的createTurboModuleFactoryDelegate的 createTurboModule⽅法,在createTurboModule⽅法中需要引⽤NativeSampleTurboModuleSpecJSI:
PackageProvider.cpp在PackageProvider的getPackages⽅法实现中添加SampleTurboModulePackage:
CMakeLists.txt在CMakeLists中导入C++文件链接:
Codegen的配置主要是在应用的package.json中添加 harmony.codegenConfig字段,其中specPaths定义了文件的入口: