ArkUI native开发指导
·
一、新建native项目
1、首先从左上角创建项目

2、在弹窗选择native项目

二、组件上树下树
2.1 组件上树
ArkTS侧需要在ArkTS页面创建用于挂载NDK接口创建组件的占位组件ContentSlot,该组件能够绑定一个NodeContent对象,然后该对象通过Node-API传递到Native侧挂载显示Native组件。以下是相关代码片段:
//ArkTs侧
//导入Native的so
import nativeNode from 'libentry.so';
import { NodeContent } from '@kit.ArkUI';
// 初始化NodeContent对象。
private rootSlot:NodeContent = new NodeContent();
@State @Watch('changeNativeFlag') showNative: boolean = false;
//挂载显示
nativeNode.createNativeRoot(this.rootSlot)
//Native侧
ArkUI_NodeContentHandle contentHandle;
OH_ArkUI_GetNodeContentFromNapiValue(env, args[0], &contentHandle);
2.2 组件下树
//ArkTS侧
// 销毁NativeModule组件
nativeNode.destroyNativeRoot()
//Native侧
OH_ArkUI_NodeContent_AddNode(handle_, myNativeNode);
OH_ArkUI_NodeContent_RemoveNode(handle_, myNativeNode);
三、为组件设置属性
通过setAttribute实现,参考代码如下:
void SetAlignItems(ArkUI_VerticalAlignment align)
{
ArkUI_NumberValue value[] = {{.i32 = align}};
ArkUI_AttributeItem item = {value, 1};
nativeModule_->setAttribute(handle_, NODE_ROW_ALIGN_ITEMS, &item);
}
四、为组件设置事件监听
使用addNodeEventReceiver函数添加组件事件的监听器,该监听器会监听该组件上发生的所有事件,参考代码如下:
nativeModule_ = NativeModuleInstance::GetInstance()->GetNativeNodeAPI();
// 事件触发时需要通过函数获取对应的事件对象,这边通过设置节点自定义数据将封装类指针保持在组件上,方便后续事件分发。
nativeModule_->setUserData(handle_, this);
// 注册节点监听事件接收器。
nativeModule_->addNodeEventReceiver(handle_, ArkUINode::NodeEventReceiver);
更多推荐
所有评论(0)