文档管理中心
我的

您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明。

指南与API参考API参考应用框架ArkUI(方舟UI框架)C API头文件native_interface.h

native_interface.h

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

概述

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

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

库: libace_ndk.z.so

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

起始版本: 12

相关模块: ArkUI_NativeModule

相关示例: NativeNodeInterfaceSample

汇总

枚举

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

函数

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

宏定义

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

枚举类型说明

ArkUI_NativeAPIVariantKind

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. 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

函数说明

OH_ArkUI_QueryModuleInterfaceByName()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. 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接口抽象指针,在转换为具体类型后进行使用。

OH_ArkUI_GetModuleInterface()

收起
自动换行
深色代码主题
复制
  1. #define OH_ArkUI_GetModuleInterface(nativeAPIVariantKind, structType, structPtr) \
  2. do { \
  3. void* anyNativeAPI = OH_ArkUI_QueryModuleInterfaceByName(nativeAPIVariantKind, #structType); \
  4. if (anyNativeAPI) { \
  5. structPtr = (structType*)(anyNativeAPI); \
  6. } \
  7. } 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

OH_ArkUI_NativeModule_GetErrorMessage()

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+TV26.0.0+Wearable26.0.0+
收起
自动换行
深色代码主题
复制
  1. const char* OH_ArkUI_NativeModule_GetErrorMessage()

描述:

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

起始版本: 26.0.0

返回:

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