• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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