目录

native_interface.h

概述

提供NativeModule接口的统一入口函数,用于初始化C-API环境、获取指定类型的Native模块接口集合,以及获取最新一次的报错信息。

引用文件: <arkui/native_interface.h>

库: libace_ndk.z.so

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 12

相关模块: ArkUI_NativeModule

相关示例: NativeNodeInterfaceSample

汇总

[h2]枚举

名称 typedef关键字 描述
ArkUI_NativeAPIVariantKind ArkUI_NativeAPIVariantKind 定义Native接口集合类型。

[h2]函数

名称 描述
void* OH_ArkUI_QueryModuleInterfaceByName(ArkUI_NativeAPIVariantKind type, const char* structName) 需调用该函数初始化C-API环境,并获取指定类型的Native模块接口集合。
const char* OH_ArkUI_NativeModule_GetErrorMessage() 获取最新一次的报错信息,包括错误码、方法名称和错误原因。

[h2]宏定义

名称 描述
OH_ArkUI_GetModuleInterface(nativeAPIVariantKind, structType, structPtr) 初始化C-API环境,并基于结构体类型获取对应结构体指针。

枚举类型说明

[h2]ArkUI_NativeAPIVariantKind

enum ArkUI_NativeAPIVariantKind

描述:

定义Native接口集合类型。

起始版本: 12

枚举项 描述
ARKUI_NATIVE_NODE = 0 UI组件相关接口类型,详见native_node.h中的结构体类型定义。
ARKUI_NATIVE_DIALOG = 1 弹窗相关接口类型,详见native_dialog.h中的结构体类型定义。
ARKUI_NATIVE_GESTURE = 2 手势相关接口类型,详见native_gesture.h中的结构体类型定义。
ARKUI_NATIVE_ANIMATE = 3 动画相关接口类型,详见native_animate.h中的结构体类型定义。
ARKUI_MULTI_THREAD_NATIVE_NODE = 4

多线程UI组件相关接口类型,详见native_node.h中的结构体类型定义。

起始版本: 22

函数说明

[h2]OH_ArkUI_QueryModuleInterfaceByName()

void* OH_ArkUI_QueryModuleInterfaceByName(ArkUI_NativeAPIVariantKind type, const char* structName)

描述:

需调用该函数初始化C-API环境,并获取指定类型的Native模块接口集合。

起始版本: 12

参数:

参数项 描述
ArkUI_NativeAPIVariantKind type ArkUI提供的Native接口集合大类,例如UI组件接口类:ARKUI_NATIVE_NODE,手势类:ARKUI_NATIVE_GESTURE。
const char* structName Native接口结构体的名称,可通过查询对应头文件内的结构体定义获取,例如位于native_node.h中的"ArkUI_NativeNodeAPI_1"。

返回:

类型 说明
void* 返回Native接口抽象指针,在转换为具体类型后进行使用。

[h2]OH_ArkUI_GetModuleInterface()

#define OH_ArkUI_GetModuleInterface(nativeAPIVariantKind, structType, structPtr)                     \
do {                                                                                                 \
        void* anyNativeAPI = OH_ArkUI_QueryModuleInterfaceByName(nativeAPIVariantKind, #structType); \
        if (anyNativeAPI) {                                                                          \
            structPtr = (structType*)(anyNativeAPI);                                                 \
        }                                                                                            \
    } while (0)

描述:

初始化C-API环境,并基于结构体类型获取对应结构体指针。

适用于已确定Native接口集合类型和接口结构体类型,需要获取具体Native接口结构体指针以调用ArkUI Native C API的场景。此宏函数接收ArkUI_NativeAPIVariantKind类型枚举参数nativeAPIVariantKind、结构体类型参数structType、结构体指针变量structPtr;structPtr需与structType类型匹配。该宏调用OH_ArkUI_QueryModuleInterfaceByName初始化C-API环境并获取Native接口抽象指针,转换为structType*类型后赋值给structPtr。

起始版本: 12

[h2]OH_ArkUI_NativeModule_GetErrorMessage()

const char* OH_ArkUI_NativeModule_GetErrorMessage()

描述:

获取最新一次的报错信息,包括错误码、方法名称和错误原因。错误码相关信息请参考ArkUI_ErrorCode。当其他接口返回错误码时,会保存对应的报错信息,通过此接口可获取当前存储的报错信息。返回的字符串是由系统创建的线程局部全局字符串,不得修改其内容。如需任何编辑,请自行创建字符串内容的副本。该接口返回的信息可能随版本演进而变化,仅用于输出以辅助分析与故障排查,不应作为逻辑判断依据。返回的报错信息无需手动释放。

起始版本: 26.0.0

返回:

类型 说明
const char* 最新一次的报错信息,包括错误码、方法名称和错误原因。