介绍
部分应用的主要开发语言为C/C++,但是HarmonyOS的部分接口仅以ArkTS的形式暴露,因此需要将ArkTS的接口封装为Native接口。本例以DocumentViewPicker的Select方法为例,提供了Napi封装ArkTS
API的通用方法,本例包含内容如下:
-
Native侧与ArkTS侧的相互调用
-
Native对象转换为ArkTS对象(包括如何在ArkTS侧调用一般形式的Native方法)
-
线程安全函数的使用
-
等待线程安全函数的执行结果
-
多实例情况下,如何在正确的窗口内执行方法
效果图预览

测试说明:
-
点击"JS线程调用"按钮,从native侧js线程拉起picker
-
点击"PThread线程调用"按钮,从native侧pthread子线程中拉起picker
-
拉起picker后,单击直接选择单个文件,长按可选择多个文件
-
本例在拉起picker时设置了maxSelectNumber=3,最多个选择3个文件
集成说明:
-
源码集成
-
参考 aki方式 集成
使用说明:
-
建议在EntryAbility之外调用registryDocumentViewPickerFn方法,避免多实例下的重复注册
-
必须给每个UIAbility生成唯一的ID属性,可使用generateAbilityID方法
-
必须在UIAbility的onWindowStageCreate中的windowStage.loadContent的回调中调用addUIContext方法
-
必须在UIAbility的onWindowStageCreate中的windowStage.loadContent之后调用setTopAbilityID
-
建议在UIAbility的onWindowStageDestroy中调用removeUIContext方法
实现思路
-
native侧需要主动调用ets侧的代码,需要将ets侧代码注入到native侧,并在注册时创


1083

被折叠的 条评论
为什么被折叠?



