• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# arkweb_type.h
2<!--Kit: ArkWeb-->
3<!--Subsystem: Web-->
4<!--Owner: @yp99ustc; @aohui; @zourongchun-->
5<!--Designer: @LongLie; @yaomingliu; @zhufenghao-->
6<!--Tester: @ghiker-->
7<!--Adviser: @HelloCrease-->
8
9## 概述
10
11提供ArkWeb在Native侧的公共类型定义。
12
13**库:** libohweb.so
14
15**系统能力:** SystemCapability.Web.Webview.Core
16
17**起始版本:** 12
18
19**相关模块:** [Web](capi-web.md)
20
21## 汇总
22
23### 结构体
24
25| 名称 | typedef关键字 | 描述 |
26| -- | -- | -- |
27| [ArkWeb_JavaScriptBridgeData](capi-web-arkweb-javascriptbridgedata.md) | ArkWeb_JavaScriptBridgeData | 定义JavaScript Bridge数据的基础结构。 |
28| [ArkWeb_WebMessage*](capi-web-arkweb-webmessage8h.md) | ArkWeb_WebMessagePtr | Post Message数据结构体指针。 |
29| [ArkWeb_JavaScriptValue*](capi-web-arkweb-javascriptvalue8h.md) | ArkWeb_JavaScriptValuePtr | JavaScript数据结构体指针。 |
30| [ArkWeb_WebMessagePort*](capi-web-arkweb-webmessageport8h.md) | ArkWeb_WebMessagePortPtr | Post Message端口结构体指针。 |
31| [ArkWeb_JavaScriptObject](capi-web-arkweb-javascriptobject.md) | ArkWeb_JavaScriptObject | 注入的JavaScript结构体。 |
32| [ArkWeb_ProxyMethod](capi-web-arkweb-proxymethod.md) | ArkWeb_ProxyMethod | 注入的Proxy方法通用结构体。 |
33| [ArkWeb_ProxyMethodWithResult](capi-web-arkweb-proxymethodwithresult.md) | ArkWeb_ProxyMethodWithResult | 注入的Proxy方法通用结构体。 |
34| [ArkWeb_ProxyObject](capi-web-arkweb-proxyobject.md) | ArkWeb_ProxyObject | 注入的Proxy对象通用结构体。 |
35| [ArkWeb_ProxyObjectWithResult](capi-web-arkweb-proxyobjectwithresult.md) | ArkWeb_ProxyObjectWithResult | 注入的Proxy对象通用结构体。 |
36| [ArkWeb_ControllerAPI](capi-web-arkweb-controllerapi.md) | ArkWeb_ControllerAPI | Controller相关的Native API结构体。在调用接口前建议通过ARKWEB_MEMBER_MISSING校验该函数结构体是否有对应函数指针,避免SDK与设备ROM不匹配导致crash问题。 |
37| [ArkWeb_ComponentAPI](capi-web-arkweb-componentapi.md) | ArkWeb_ComponentAPI | Component相关的Native API结构体。 |
38| [ArkWeb_WebMessagePortAPI](capi-web-arkweb-webmessageportapi.md) | ArkWeb_WebMessagePortAPI | Post Message相关的Native API结构体。在调用接口前建议通过ARKWEB_MEMBER_MISSING校验该函数结构体是否有对应函数指针,避免SDK与设备ROM不匹配导致crash问题。 |
39| [ArkWeb_WebMessageAPI](capi-web-arkweb-webmessageapi.md) | ArkWeb_WebMessageAPI | Post Message数据相关的Native API结构体。在调用接口前建议通过ARKWEB_MEMBER_MISSING校验该函数结构体是否有对应函数指针,避免SDK与设备ROM不匹配导致crash问题。 |
40| [ArkWeb_CookieManagerAPI](capi-web-arkweb-cookiemanagerapi.md) | ArkWeb_CookieManagerAPI | 定义了ArkWeb的CookieManager接口。在调用接口之前,建议使用ARKWEB_MEMBER_MISSING检查函数结构体是否有对应的函数指针,避免SDK与设备ROM不匹配导致崩溃。 |
41| [ArkWeb_JavaScriptValueAPI](capi-web-arkweb-javascriptvalueapi.md) | ArkWeb_JavaScriptValueAPI | 定义了ArkWeb的JavaScriptValue接口。在调用接口之前,建议使用ARKWEB_MEMBER_MISSING检查函数结构体是否有对应的函数指针,避免SDK与设备ROM不匹配导致崩溃。 |
42
43### 枚举
44
45| 名称 | typedef关键字 | 描述 |
46| -- | -- | -- |
47| [ArkWeb_WebMessageType](#arkweb_webmessagetype) | ArkWeb_WebMessageType | Post Message数据类型。 |
48| [ArkWeb_JavaScriptValueType](#arkweb_javascriptvaluetype) | ArkWeb_JavaScriptValueType | JavaScript数据类型。 |
49
50### 函数
51
52| 名称                                                                                                                                                                                                                                | typedef关键字                                 | 描述 |
53|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------| -- |
54| [typedef void (\*ArkWeb_OnJavaScriptCallback)(const char* webTag, const ArkWeb_JavaScriptBridgeData* data, void* userData)](#arkweb_onjavascriptcallback)                                                                         | ArkWeb_OnJavaScriptCallback                | 注入的JavaScript执行完成的回调。 |
55| [typedef void (\*ArkWeb_OnJavaScriptProxyCallback)(const char* webTag, const ArkWeb_JavaScriptBridgeData* dataArray, size_t arraySize, void* userData)](#arkweb_onjavascriptproxycallback)                                        | ArkWeb_OnJavaScriptProxyCallback           | Proxy方法被执行的回调。 |
56| [typedef ArkWeb_JavaScriptValuePtr (\*ArkWeb_OnJavaScriptProxyCallbackWithResult)(const char* webTag, const ArkWeb_JavaScriptBridgeData* dataArray, size_t arraySize, void* userData)](#arkweb_onjavascriptproxycallbackwithresult) | ArkWeb_OnJavaScriptProxyCallbackWithResult | Proxy方法被执行的回调。 |
57| [typedef void (\*ArkWeb_OnComponentCallback)(const char* webTag, void* userData)](#arkweb_oncomponentcallback)                                                                                                                    | ArkWeb_OnComponentCallback                 | 组件事件通知相关的通用回调。 |
58| [typedef void (\*ArkWeb_OnScrollCallback)(const char* webTag, void* userData, double x, double y)](#arkweb_onscrollcallback)                                                                                                      | ArkWeb_OnScrollCallback                    | 定义Web组件滚动时的回调函数的类型。 |
59| [typedef void (\*ArkWeb_OnMessageEventHandler)(const char* webTag, const ArkWeb_WebMessagePortPtr port, const ArkWeb_WebMessagePtr message, void* userData)](#arkweb_onmessageeventhandler)                                       | ArkWeb_OnMessageEventHandler               | 处理HTML发送过来的Post Message数据。 |
60
61### 宏定义
62
63| 名称 | 描述 |
64| ---- | ---- |
65| ARKWEB_MEMBER_EXISTS(s, f)&nbsp;&nbsp;&nbsp;&nbsp;((intptr_t) &amp; ((s)-&gt;f) - (intptr_t)(s) + sizeof((s)-&gt;f) &lt;= \*reinterpret_cast&lt;size_t\*&gt;(s)) | 检查结构体中是否存在该成员变量。<br>**起始版本:** 12 |
66| ARKWEB_MEMBER_MISSING(s, f)&nbsp;&nbsp;&nbsp;(\!ARKWEB_MEMBER_EXISTS(s, f) \|\| !((s)-&gt;f)) | 当前结构体存在该成员变量则返回false,否则返回true<br/>**起始版本:** 12 |
67
68## 枚举类型说明
69
70### ArkWeb_WebMessageType
71
72```
73enum ArkWeb_WebMessageType
74```
75
76**描述**
77
78Post Message数据类型。
79
80**起始版本:** 12
81
82| 枚举项 | 描述 |
83| -- | -- |
84| ARKWEB_NONE = 0 | 错误数据。 |
85| ARKWEB_STRING | 字符串数据类型。 |
86| ARKWEB_BUFFER | 字节流数据类型。 |
87
88### ArkWeb_JavaScriptValueType
89
90```
91enum ArkWeb_JavaScriptValueType
92```
93
94**描述**
95
96JavaScript数据类型。
97
98**起始版本:** 18
99
100| 枚举项 | 描述 |
101| -- | -- |
102| ARKWEB_JAVASCRIPT_NONE = 0 | 错误数据。 |
103| ARKWEB_JAVASCRIPT_STRING | 字符串数据类型。 |
104| ARKWEB_JAVASCRIPT_BOOL | bool数据类型。 |
105
106
107## 函数说明
108
109### ArkWeb_OnJavaScriptCallback()
110
111```
112typedef void (*ArkWeb_OnJavaScriptCallback)(const char* webTag, const ArkWeb_JavaScriptBridgeData* data, void* userData)
113```
114
115**描述**
116
117注入的JavaScript执行完成的回调。
118
119**起始版本:** 12
120
121
122**参数:**
123
124| 参数项                                         | 描述 |
125|---------------------------------------------| -- |
126| const char* webTag                          | Web组件名称。 |
127| const [ArkWeb_JavaScriptBridgeData](capi-web-arkweb-javascriptbridgedata.md)* data | JavaScriptBridge数据。 |
128| void* userData                              | 用户自定义的数据。 |
129
130### ArkWeb_OnJavaScriptProxyCallback()
131
132```
133typedef void (*ArkWeb_OnJavaScriptProxyCallback)(const char* webTag, const ArkWeb_JavaScriptBridgeData* dataArray, size_t arraySize, void* userData)
134```
135
136**描述**
137
138Proxy方法被执行的回调。
139
140**起始版本:** 12
141
142
143**参数:**
144
145| 参数项 | 描述 |
146| -- | -- |
147| const char* webTag | Web组件名称。 |
148|  const [ArkWeb_JavaScriptBridgeData](capi-web-arkweb-javascriptbridgedata.md)* dataArray | 数组数据。 |
149|  size_t arraySize | 数组大小。 |
150|  void* userData | 用户自定义的数据。 |
151
152### ArkWeb_OnJavaScriptProxyCallbackWithResult()
153
154```
155typedef ArkWeb_JavaScriptValuePtr (*ArkWeb_OnJavaScriptProxyCallbackWithResult)(const char* webTag, const ArkWeb_JavaScriptBridgeData* dataArray, size_t arraySize, void* userData)
156```
157
158**描述**
159
160Proxy方法被执行的回调。
161
162**起始版本:** 18
163
164
165**参数:**
166
167| 参数项 | 描述 |
168| -- | -- |
169| const char* webTag | Web组件名称。 |
170|  const [ArkWeb_JavaScriptBridgeData](capi-web-arkweb-javascriptbridgedata.md)* dataArray | 数组数据。 |
171|  size_t arraySize | 数组大小。 |
172|  void* userData | 用户自定义的数据。 |
173
174### ArkWeb_OnComponentCallback()
175
176```
177typedef void (*ArkWeb_OnComponentCallback)(const char* webTag, void* userData)
178```
179
180**描述**
181
182组件事件通知相关的通用回调。
183
184**起始版本:** 12
185
186
187**参数:**
188
189| 参数项 | 描述 |
190| -- | -- |
191| const char* webTag | Web组件名称。 |
192|  void* userData | 用户自定义的数据。 |
193
194### ArkWeb_OnScrollCallback()
195
196```
197typedef void (*ArkWeb_OnScrollCallback)(const char* webTag, void* userData, double x, double y)
198```
199
200**描述**
201
202定义Web组件滚动时的回调函数的类型。
203
204**起始版本:** 18
205
206
207**参数:**
208
209| 参数项 | 描述 |
210| -- | -- |
211| const char* webTag | Web组件名称。 |
212|  void* userData | 用户自定义的数据。 |
213|  double x | X轴滚动偏移。 |
214|  double y | Y轴滚动偏移。 |
215
216### ArkWeb_OnMessageEventHandler()
217
218```
219typedef void (*ArkWeb_OnMessageEventHandler)(const char* webTag, const ArkWeb_WebMessagePortPtr port, const ArkWeb_WebMessagePtr message, void* userData)
220```
221
222**描述**
223
224处理HTML发送过来的Post Message数据。
225
226**起始版本:** 12
227
228**参数:**
229
230| 参数项                                                                    | 描述 |
231|------------------------------------------------------------------------| -- |
232| const char* webTag                                                     | Web组件名称。 |
233| const [ArkWeb_WebMessagePortPtr](capi-web-arkweb-webmessageport8h.md) port | Post Message端口。 |
234| const [ArkWeb_WebMessagePtr](capi-web-arkweb-webmessage8h.md) message                                 | Post Message数据。 |
235| void* userData                                                         | 用户自定义数据。 |
236
237
238