1# native_interface.h 2<!--Kit: ArkUI--> 3<!--Subsystem: ArkUI--> 4<!--Owner: @xiang-shouxing--> 5<!--Designer: @xiang-shouxing--> 6<!--Tester: @sally__--> 7<!--Adviser: @HelloCrease--> 8 9## 概述 10 11提供NativeModule接口的统一入口函数。 12 13**引用文件:** <arkui/native_interface.h> 14 15**库:** libace_ndk.z.so 16 17**系统能力:** SystemCapability.ArkUI.ArkUI.Full 18 19**起始版本:** 12 20 21**相关模块:** [ArkUI_NativeModule](capi-arkui-nativemodule.md) 22 23## 汇总 24 25### 枚举 26 27| 名称 | typedef关键字 | 描述 | 28| -- | -- | -- | 29| [ArkUI_NativeAPIVariantKind](#arkui_nativeapivariantkind) | ArkUI_NativeAPIVariantKind | 定义Native接口集合类型。 | 30 31### 函数 32 33| 名称 | 描述 | 34|--------------|-----------| 35| [void* OH_ArkUI_QueryModuleInterfaceByName(ArkUI_NativeAPIVariantKind type, const char* structName)](#oh_arkui_querymoduleinterfacebyname) | 需调用该函数初始化C-API环境,并获取指定类型的Native模块接口集合。 | 36 37### 宏定义 38 39| 名称 | 描述 | 40|--------------|-----------| 41| [OH_ArkUI_GetModuleInterface(nativeAPIVariantKind, structType, structPtr)](#oh_arkui_getmoduleinterface) | 基于结构体类型获取对应结构体指针的宏函数。 | 42 43## 枚举类型说明 44 45### ArkUI_NativeAPIVariantKind 46 47``` 48enum ArkUI_NativeAPIVariantKind 49``` 50 51**描述:** 52 53 54定义Native接口集合类型。 55 56**起始版本:** 12 57 58| 枚举项 | 描述 | 59| -- | -- | 60| ARKUI_NATIVE_NODE | UI组件相关接口类型,详见[native_node.h](./capi-native-node-h.md)中的结构体类型定义。 | 61| ARKUI_NATIVE_DIALOG | 弹窗相关接口类型,详见[native_dialog.h](./capi-native-dialog-h.md)中的[结构体](capi-native-dialog-h.md#结构体)类型定义。 | 62| ARKUI_NATIVE_GESTURE | 手势相关接口类型,详见[native_gesture.h](./capi-native-gesture-h.md)中的[结构体](capi-native-gesture-h.md#结构体)类型定义。 | 63| ARKUI_NATIVE_ANIMATE | 动画相关接口类型。详见[native_animate.h](./capi-native-animate-h.md)中的[结构体](capi-native-animate-h.md#结构体)类型定义。 | 64 65 66## 函数说明 67 68### OH_ArkUI_QueryModuleInterfaceByName() 69 70``` 71void* OH_ArkUI_QueryModuleInterfaceByName(ArkUI_NativeAPIVariantKind type, const char* structName) 72``` 73 74**描述:** 75 76 77需调用该函数初始化C-API环境,并获取指定类型的Native模块接口集合。 78 79**起始版本:** 12 80 81 82**参数:** 83 84| 参数项 | 描述 | 85| -- | -- | 86| [ArkUI_NativeAPIVariantKind](capi-native-interface-h.md#arkui_nativeapivariantkind) type | ArkUI提供的Native接口集合大类,例如UI组件接口类:ARKUI_NATIVE_NODE, 手势类:ARKUI_NATIVE_GESTURE。 | 87| const char* structName | native接口结构体的名称,通过查询对应头文件内结构体定义,例如位于[native_node.h](./capi-native-node-h.md)中的"ArkUI_NativeNodeAPI_1"。 | 88 89**返回:** 90 91| 类型 | 说明 | 92| -- | -- | 93| void* | void 返回Native接口抽象指针,在转化为具体类型后进行使用。 | 94 95### OH_ArkUI_GetModuleInterface() 96 97``` 98OH_ArkUI_GetModuleInterface(nativeAPIVariantKind, structType, structPtr) \ 99do { \ 100 void* anyNativeAPI = OH_ArkUI_QueryModuleInterfaceByName(nativeAPIVariantKind, #structType); \ 101 if (anyNativeAPI) { \ 102 structPtr = (structType*)(anyNativeAPI); \ 103 } \ 104 } while (0) 105``` 106 107**描述:** 108 109 110基于结构体类型获取对应结构体指针的宏函数。 111 112**起始版本:** 12 113 114 115