• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# arkweb_scheme_handler.h
2<!--Kit: ArkWeb-->
3<!--Subsystem: Web-->
4<!--Owner: @aohui-->
5<!--Designer: @yaomingliu-->
6<!--Tester: @ghiker-->
7<!--Adviser: @HelloCrease-->
8
9## 概述
10
11声明用于拦截来自ArkWeb的请求的API。
12
13**库:** libohweb.so
14
15**系统能力:** SystemCapability.Web.Webview.Core
16
17**起始版本:** 12
18
19**相关模块:** [Web](capi-web.md)
20
21**相关示例:** <!--RP1-->[ArkWebSchemeHandler](https://gitcode.com/openharmony/applications_app_samples/tree/master/code/DocsSample/ArkWeb/ArkWebSchemeHandler)<!--RP1End-->
22
23## 汇总
24
25### 结构体
26
27| 名称 | typedef关键字 | 描述 |
28| -- | -- | -- |
29| [ArkWeb_SchemeHandler_](capi-web-arkweb-schemehandler.md) | ArkWeb_SchemeHandler | 该类用于拦截指定scheme的请求。 |
30| [ArkWeb_ResourceHandler_](capi-web-arkweb-resourcehandler.md) | ArkWeb_ResourceHandler | 用于被拦截的URL请求。可以通过ArkWeb_ResourceHandler发送自定义请求头以及自定义请求体。 |
31| [ArkWeb_Response_](capi-web-arkweb-response.md) | ArkWeb_Response | 为被拦截的请求构造一个ArkWeb_Response。 |
32| [ArkWeb_ResourceRequest_](capi-web-arkweb-resourcerequest.md) | ArkWeb_ResourceRequest | 对应内核的一个请求,可以通过OH_ArkWeb_ResourceRequest获取请求的URL、method、post data以及其他信息。 |
33| [ArkWeb_RequestHeaderList_](capi-web-arkweb-requestheaderlist.md) | ArkWeb_RequestHeaderList | 请求头列表。 |
34| [ArkWeb_HttpBodyStream_](capi-web-arkweb-httpbodystream.md) | ArkWeb_HttpBodyStream | 请求的上传数据。使用OH_ArkWebHttpBodyStream_接口来读取上传的数据。 |
35
36### 枚举
37
38| 名称 | typedef关键字 | 描述 |
39| -- | -- | -- |
40| [ArkWeb_CustomSchemeOption](#arkweb_customschemeoption) | ArkWeb_CustomSchemeOption | custom scheme的配置信息。 |
41| [ArkWeb_ResourceType](#arkweb_resourcetype) | ArkWeb_ResourceType | 请求的资源类型。这些常量与Chromium中的ResourceType的对应项相匹配,不应重新编号。 |
42
43### 函数
44
45| 名称 | typedef关键字 | 描述 |
46| -- | -- | -- |
47| [typedef void (\*ArkWeb_OnRequestStart)(const ArkWeb_SchemeHandler* schemeHandler,ArkWeb_ResourceRequest* resourceRequest,const ArkWeb_ResourceHandler* resourceHandler,bool* intercept)](#arkweb_onrequeststart) | ArkWeb_OnRequestStart | 请求开始的回调,这将在IO线程上被调用。 |
48| [typedef void (\*ArkWeb_OnRequestStop)(const ArkWeb_SchemeHandler* schemeHandler,const ArkWeb_ResourceRequest* resourceRequest)](#arkweb_onrequeststop) | ArkWeb_OnRequestStop | 请求完成时的回调函数。这将在IO线程上被调用。<br>应该使用ArkWeb_ResourceRequest_Destroy销毁resourceRequest,<br>并使用ArkWeb_ResourceHandler_Destroy销毁在ArkWeb_OnRequestStart中接收到的ArkWeb_ResourceHandler。 |
49| [typedef void (\*ArkWeb_HttpBodyStreamReadCallback)(const ArkWeb_HttpBodyStream* httpBodyStream,uint8_t* buffer,int bytesRead)](#arkweb_httpbodystreamreadcallback) | ArkWeb_HttpBodyStreamReadCallback | 当OH_ArkWebHttpBodyStream_Read读取操作完成时的回调函数。 |
50| [typedef void (\*ArkWeb_HttpBodyStreamAsyncReadCallback)(const ArkWeb_HttpBodyStream* httpBodyStream,uint8_t* buffer,int bytesRead)](#arkweb_httpbodystreamasyncreadcallback) | ArkWeb_HttpBodyStreamAsyncReadCallback | 当OH_ArkWebHttpBodyStream_AsyncRead读取操作完成时的回调函数。 |
51| [typedef void (\*ArkWeb_HttpBodyStreamInitCallback)(const ArkWeb_HttpBodyStream* httpBodyStream, ArkWeb_NetError result)](#arkweb_httpbodystreaminitcallback) | ArkWeb_HttpBodyStreamInitCallback | ArkWeb_HttpBodyStream初始化操作完成时回调函数。 |
52| [void OH_ArkWebRequestHeaderList_Destroy(ArkWeb_RequestHeaderList* requestHeaderList)](#oh_arkwebrequestheaderlist_destroy) | - | 销毁ArkWeb_RequestHeaderList对象。 |
53| [int32_t OH_ArkWebRequestHeaderList_GetSize(const ArkWeb_RequestHeaderList* requestHeaderList)](#oh_arkwebrequestheaderlist_getsize) | - | 获取请求头列表的大小。 |
54| [void OH_ArkWebRequestHeaderList_GetHeader(const ArkWeb_RequestHeaderList* requestHeaderList,int32_t index,char** key,char** value)](#oh_arkwebrequestheaderlist_getheader) | - | 获取指定的请求头。 |
55| [int32_t OH_ArkWebResourceRequest_SetUserData(ArkWeb_ResourceRequest* resourceRequest, void* userData)](#oh_arkwebresourcerequest_setuserdata) | - | 将一个用户数据设置到ArkWeb_ResourceRequest对象中。 |
56| [void* OH_ArkWebResourceRequest_GetUserData(const ArkWeb_ResourceRequest* resourceRequest)](#oh_arkwebresourcerequest_getuserdata) | - | 从ArkWeb_ResourceRequest获取用户数据。 |
57| [void OH_ArkWebResourceRequest_GetMethod(const ArkWeb_ResourceRequest* resourceRequest, char** method)](#oh_arkwebresourcerequest_getmethod) | - | 获取请求的method。 |
58| [void OH_ArkWebResourceRequest_GetUrl(const ArkWeb_ResourceRequest* resourceRequest, char** url)](#oh_arkwebresourcerequest_geturl) | - | 获取请求的url。 |
59| [void OH_ArkWebResourceRequest_GetHttpBodyStream(const ArkWeb_ResourceRequest* resourceRequest,ArkWeb_HttpBodyStream** httpBodyStream)](#oh_arkwebresourcerequest_gethttpbodystream) | - | 创建一个ArkWeb_HttpBodyStream,用于读取请求的上传数据。 |
60| [void OH_ArkWebResourceRequest_DestroyHttpBodyStream(ArkWeb_HttpBodyStream* httpBodyStream)](#oh_arkwebresourcerequest_destroyhttpbodystream) | - | 销毁ArkWeb_HttpBodyStream对象。 |
61| [int32_t OH_ArkWebResourceRequest_GetResourceType(const ArkWeb_ResourceRequest* resourceRequest)](#oh_arkwebresourcerequest_getresourcetype) | - | 获取请求的资源类型。 |
62| [void OH_ArkWebResourceRequest_GetFrameUrl(const ArkWeb_ResourceRequest* resourceRequest, char** frameUrl)](#oh_arkwebresourcerequest_getframeurl) | - | 获取触发此请求的Frame的URL。 |
63| [int32_t OH_ArkWebHttpBodyStream_SetUserData(ArkWeb_HttpBodyStream* httpBodyStream, void* userData)](#oh_arkwebhttpbodystream_setuserdata) | - | 将一个用户数据设置到ArkWeb_HttpBodyStream对象中。 |
64| [void* OH_ArkWebHttpBodyStream_GetUserData(const ArkWeb_HttpBodyStream* httpBodyStream)](#oh_arkwebhttpbodystream_getuserdata) | - | 从ArkWeb_HttpBodyStream获取用户数据。 |
65| [int32_t OH_ArkWebHttpBodyStream_SetReadCallback(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamReadCallback readCallback)](#oh_arkwebhttpbodystream_setreadcallback) | - | 为OH_ArkWebHttpBodyStream_Read设置回调函数。OH_ArkWebHttpBodyStream_Read的结果将通过readCallback通知给调用者。<br>该回调函数将在与OH_ArkWebHttpBodyStream_Read相同的线程中运行。 |
66| [int32_t OH_ArkWebHttpBodyStream_SetAsyncReadCallback(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamReadCallback readCallback)](#oh_arkwebhttpbodystream_setasyncreadcallback) | - | 为OH_ArkWebHttpBodyStream_AsyncRead设置回调函数。OH_ArkWebHttpBodyStream_AsyncRead的结果将通过readCallback通知给开发者。<br>该回调函数将在与OH_ArkWebHttpBodyStream_AsyncRead相同的线程中运行。 |
67| [int32_t OH_ArkWebHttpBodyStream_Init(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamInitCallback initCallback)](#oh_arkwebhttpbodystream_init) | - | 初始化ArkWeb_HttpBodyStream。在调用任何其他函数之前,必须调用此函数。该接口需要在IO线程调用。 |
68| [void OH_ArkWebHttpBodyStream_Read(const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen)](#oh_arkwebhttpbodystream_read) | - | 将请求的上传数据读取到buffer。buffer的大小必须大于bufLen。我们将从工作线程读取数据到buffer,因此在回调函数返回之前,不应在其他线程中使用buffer,以避免并发问题。 |
69| [void OH_ArkWebHttpBodyStream_AsyncRead(const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen)](#oh_arkwebhttpbodystream_asyncread) | - | 将请求的上传数据读取到buffer。buffer的大小必须大于bufLen。数据将从工作线程读取数据到buffer,因此在回调函数返回之前,不应在其他线程中使用buffer,以避免并发问题。 |
70| [uint64_t OH_ArkWebHttpBodyStream_GetSize(const ArkWeb_HttpBodyStream* httpBodyStream)](#oh_arkwebhttpbodystream_getsize) | - | 获取httpBodyStream的大小。当数据以分块的形式传输或httpBodyStream无效时,始终返回0。 |
71| [uint64_t OH_ArkWebHttpBodyStream_GetPosition(const ArkWeb_HttpBodyStream* httpBodyStream)](#oh_arkwebhttpbodystream_getposition) | - | 获取httpBodyStream当前的读取位置。 |
72| [bool OH_ArkWebHttpBodyStream_IsChunked(const ArkWeb_HttpBodyStream* httpBodyStream)](#oh_arkwebhttpbodystream_ischunked) | - | 获取httpBodyStream是否采用分块传输。 |
73| [bool OH_ArkWebHttpBodyStream_IsEof(const ArkWeb_HttpBodyStream* httpBodyStream)](#oh_arkwebhttpbodystream_iseof) | - | 如果httpBodyStream中的所有数据都已被读取,则返回true。对于分块传输类型的httpBodyStream,在第一次读取尝试之前返回false。 |
74| [bool OH_ArkWebHttpBodyStream_IsInMemory(const ArkWeb_HttpBodyStream* httpBodyStream)](#oh_arkwebhttpbodystream_isinmemory) | - | 如果httpBodyStream中的上传数据完全在内存中,并且所有读取请求都将同步成功,则返回true。对于分块传输类型的数据,预期返回false。 |
75| [int32_t OH_ArkWebResourceRequest_Destroy(const ArkWeb_ResourceRequest* resourceRequest)](#oh_arkwebresourcerequest_destroy) | - | 销毁ArkWeb_ResourceRequest对象。 |
76| [void OH_ArkWebResourceRequest_GetReferrer(const ArkWeb_ResourceRequest* resourceRequest, char** referrer)](#oh_arkwebresourcerequest_getreferrer) | - | 获取请求的Referrer。 |
77| [void OH_ArkWebResourceRequest_GetRequestHeaders(const ArkWeb_ResourceRequest* resourceRequest,ArkWeb_RequestHeaderList** requestHeaderList)](#oh_arkwebresourcerequest_getrequestheaders) | - | 获取请求的请求头列表OH_ArkWeb_RequestHeaderList。 |
78| [bool OH_ArkWebResourceRequest_IsRedirect(const ArkWeb_ResourceRequest* resourceRequest)](#oh_arkwebresourcerequest_isredirect) | - | 判断这是否是一个重定向请求。 |
79| [bool OH_ArkWebResourceRequest_IsMainFrame(const ArkWeb_ResourceRequest* resourceRequest)](#oh_arkwebresourcerequest_ismainframe) | - | 判断这是否是主框架文档资源的请求。 |
80| [bool OH_ArkWebResourceRequest_HasGesture(const ArkWeb_ResourceRequest* resourceRequest)](#oh_arkwebresourcerequest_hasgesture) | - | 判断这是否是一个由用户手势触发的请求。 |
81| [int32_t OH_ArkWeb_RegisterCustomSchemes(const char* scheme, int32_t option)](#oh_arkweb_registercustomschemes) | - | 将custom scheme注册到ArkWeb。对于内置的HTTP、HTTPS、FILE、FTP、ABOUT和DATA协议,不应调用此函数。<br>此函数应在主线程上调用并且需要在内核初始化之前调用。 |
82| [bool OH_ArkWebServiceWorker_SetSchemeHandler(const char* scheme, ArkWeb_SchemeHandler* schemeHandler)](#oh_arkwebserviceworker_setschemehandler) | - | 为指定scheme设置一个ArkWeb_SchemeHandler以拦截ServiceWorker触发的该scheme类型的请求。应该在创建BrowserContext之后设置SchemeHandler。<br>可以使用WebviewController.initializeWebEngine来初始化BrowserContext而无需创建ArkWeb。 |
83| [bool OH_ArkWeb_SetSchemeHandler(const char* scheme, const char* webTag, ArkWeb_SchemeHandler* schemeHandler)](#oh_arkweb_setschemehandler) | - | 为指定scheme设置一个ArkWeb_SchemeHandler以拦截该scheme类型的请求。应该在创建BrowserContext之后设置SchemeHandler。<br>可以使用WebviewController.initializeWebEngine来初始化BrowserContext而无需创建ArkWeb。 |
84| [int32_t OH_ArkWebServiceWorker_ClearSchemeHandlers()](#oh_arkwebserviceworker_clearschemehandlers) | - | 清除为ServiceWorker注册的SchemeHandler。 |
85| [int32_t OH_ArkWeb_ClearSchemeHandlers(const char* webTag)](#oh_arkweb_clearschemehandlers) | - | 清除为指定web注册的SchemeHandler。 |
86| [void OH_ArkWeb_CreateSchemeHandler(ArkWeb_SchemeHandler** schemeHandler)](#oh_arkweb_createschemehandler) | - | 创建一个ArkWeb_SchemeHandler对象。 |
87| [void OH_ArkWeb_DestroySchemeHandler(ArkWeb_SchemeHandler* schemeHandler)](#oh_arkweb_destroyschemehandler) | - | 销毁一个ArkWeb_SchemeHandler对象。 |
88| [int32_t OH_ArkWebSchemeHandler_SetUserData(ArkWeb_SchemeHandler* schemeHandler, void* userData)](#oh_arkwebschemehandler_setuserdata) | - | 将一个用户数据设置到ArkWeb_SchemeHandler对象中。 |
89| [void* OH_ArkWebSchemeHandler_GetUserData(const ArkWeb_SchemeHandler* schemeHandler)](#oh_arkwebschemehandler_getuserdata) | - | 从ArkWeb_SchemeHandler获取用户数据。 |
90| [int32_t OH_ArkWebSchemeHandler_SetOnRequestStart(ArkWeb_SchemeHandler* schemeHandler,ArkWeb_OnRequestStart onRequestStart)](#oh_arkwebschemehandler_setonrequeststart) | - | 为SchemeHandler设置OnRequestStart回调。 |
91| [int32_t OH_ArkWebSchemeHandler_SetOnRequestStop(ArkWeb_SchemeHandler* schemeHandler,ArkWeb_OnRequestStop onRequestStop)](#oh_arkwebschemehandler_setonrequeststop) | - | 为SchemeHandler设置OnRequestStop回调。 |
92| [void OH_ArkWeb_CreateResponse(ArkWeb_Response** response)](#oh_arkweb_createresponse) | - | 为被拦截的请求创建一个ArkWeb_Response对象。 |
93| [void OH_ArkWeb_DestroyResponse(ArkWeb_Response* response)](#oh_arkweb_destroyresponse) | - | 销毁一个ArkWeb_Response对象。 |
94| [int32_t OH_ArkWebResponse_SetUrl(ArkWeb_Response* response, const char* url)](#oh_arkwebresponse_seturl) | - | 设置经过重定向或由于HSTS而改变后的解析URL,设置后会触发跳转。 |
95| [void OH_ArkWebResponse_GetUrl(const ArkWeb_Response* response, char** url)](#oh_arkwebresponse_geturl) | - | 获取经过重定向或由于HSTS而更改后的解析URL。 |
96| [int32_t OH_ArkWebResponse_SetError(ArkWeb_Response* response, ArkWeb_NetError errorCode)](#oh_arkwebresponse_seterror) | - | 给ArkWeb_Response对象设置一个错误码。 |
97| [ArkWeb_NetError OH_ArkWebResponse_GetError(const ArkWeb_Response* response)](#oh_arkwebresponse_geterror) | - | 获取ArkWeb_Response的错误码。 |
98| [int32_t OH_ArkWebResponse_SetStatus(ArkWeb_Response* response, int status)](#oh_arkwebresponse_setstatus) | - | 为ArkWeb_Response对象设置一个HTTP状态码。 |
99| [int OH_ArkWebResponse_GetStatus(const ArkWeb_Response* response)](#oh_arkwebresponse_getstatus) | - | 获取ArkWeb_Response的HTTP状态码。 |
100| [int32_t OH_ArkWebResponse_SetStatusText(ArkWeb_Response* response, const char* statusText)](#oh_arkwebresponse_setstatustext) | - | 为ArkWeb_Response设置状态文本。 |
101| [void OH_ArkWebResponse_GetStatusText(const ArkWeb_Response* response, char** statusText)](#oh_arkwebresponse_getstatustext) | - | 获取ArkWeb_Response的状态文本。 |
102| [int32_t OH_ArkWebResponse_SetMimeType(ArkWeb_Response* response, const char* mimeType)](#oh_arkwebresponse_setmimetype) | - | 为ArkWeb_Response设置媒体类型。 |
103| [void OH_ArkWebResponse_GetMimeType(const ArkWeb_Response* response, char** mimeType)](#oh_arkwebresponse_getmimetype) | - | 获取ArkWeb_Response的媒体类型。 |
104| [int32_t OH_ArkWebResponse_SetCharset(ArkWeb_Response* response, const char* charset)](#oh_arkwebresponse_setcharset) | - | 为ArkWeb_Response设置字符集。 |
105| [void OH_ArkWebResponse_GetCharset(const ArkWeb_Response* response, char** charset)](#oh_arkwebresponse_getcharset) | - | 获取ArkWeb_Response的字符集。 |
106| [int32_t OH_ArkWebResponse_SetHeaderByName(ArkWeb_Response* response,const char* name,const char* value,bool overwrite)](#oh_arkwebresponse_setheaderbyname) | - | 为ArkWeb_Response设置一个header。 |
107| [void OH_ArkWebResponse_GetHeaderByName(const ArkWeb_Response* response, const char* name, char** value)](#oh_arkwebresponse_getheaderbyname) | - | 从ArkWeb_Response中获取header。 |
108| [int32_t OH_ArkWebResourceHandler_Destroy(const ArkWeb_ResourceHandler* resourceHandler)](#oh_arkwebresourcehandler_destroy) | - | 销毁一个ArkWeb_ResourceHandler对象。 |
109| [int32_t OH_ArkWebResourceHandler_DidReceiveResponse(const ArkWeb_ResourceHandler* resourceHandler,const ArkWeb_Response* response)](#oh_arkwebresourcehandler_didreceiveresponse) | - | 将构造的响应头传递给被拦截的请求。 |
110| [int32_t OH_ArkWebResourceHandler_DidReceiveData(const ArkWeb_ResourceHandler* resourceHandler,const uint8_t* buffer,int64_t bufLen)](#oh_arkwebresourcehandler_didreceivedata) | - | 将构造的响应体传递给被拦截的请求。 |
111| [int32_t OH_ArkWebResourceHandler_DidFinish(const ArkWeb_ResourceHandler* resourceHandler)](#oh_arkwebresourcehandler_didfinish) | - | 通知ArkWeb内核被拦截的请求已经完成,并且没有更多的数据可用。 |
112| [int32_t OH_ArkWebResourceHandler_DidFailWithError(const ArkWeb_ResourceHandler* resourceHandler,ArkWeb_NetError errorCode)](#oh_arkwebresourcehandler_didfailwitherror) | - | 通知ArkWeb内核,被拦截的请求应该失败。 |
113| [int32_t OH_ArkWebResourceHandler_DidFailWithErrorV2(const ArkWeb_ResourceHandler* resourceHandler,ArkWeb_NetError errorCode,bool completeIfNoResponse)](#oh_arkwebresourcehandler_didfailwitherrorv2) | - | 通知ArkWeb内核,被拦截的请求应该失败。对比OH_ArkWebResourceHandler_DidFailWithError接口,新增参数completeIfNoResponse,当值为true时,若之前未调用过OH_ArkWebResourceHandler_DidReceiveResponse,则会自动生成一个response以完成此次网络请求,网络错误码为-104;值为false时,将等待应用调用OH_ArkWebResourceHandler_DidReceiveResponse并传入response,不会直接完成此次网络请求。 |
114| [void OH_ArkWeb_ReleaseString(char* string)](#oh_arkweb_releasestring) | - | 释放由NDK接口创建的字符串。 |
115| [void OH_ArkWeb_ReleaseByteArray(uint8_t* byteArray)](#oh_arkweb_releasebytearray) | - | 释放由NDK接口创建的字节数组。 |
116
117## 枚举类型说明
118
119### ArkWeb_CustomSchemeOption
120
121```
122enum ArkWeb_CustomSchemeOption
123```
124
125**描述:**
126
127custom scheme的配置信息。
128
129**系统能力:** SystemCapability.Web.Webview.Core
130
131**起始版本:** 12
132
133| 枚举项 | 描述 |
134| -- | -- |
135| OH_ARKWEB_SCHEME_OPTION_NONE = 0 | 表示注册自定义scheme时不赋予它任何特殊行为或能力。 |
136| ARKWEB_SCHEME_OPTION_STANDARD = 1 << 0 | 如果设置了ARKWEB_SCHEME_OPTION_STANDARD,那么该scheme将被视为标准scheme来处理。 |
137| ARKWEB_SCHEME_OPTION_LOCAL = 1 << 1 | 如果设置了ARKWEB_SCHEME_OPTION_LOCAL,则将使用与“file” URL相同的安全规则来处理该scheme。 |
138| ARKWEB_SCHEME_OPTION_DISPLAY_ISOLATED = 1 << 2 | 如果设置了ARKWEB_SCHEME_OPTION_DISPLAY_ISOLATED,则该scheme的请求只能由使用相同scheme加载的页面中发起。 |
139| ARKWEB_SCHEME_OPTION_SECURE = 1 << 3 | 如果设置了ARKWEB_SCHEME_OPTION_SECURE,则将使用与“https” URL相同的安全规则来处理该scheme。 |
140| ARKWEB_SCHEME_OPTION_CORS_ENABLED = 1 << 4 | 如果设置了ARKWEB_SCHEME_OPTION_CORS_ENABLED,则该scheme可以发送CORS请求。在大多数情况下,当设置了ARKWEB_SCHEME_OPTION_STANDARD时,应该设置此值。 |
141| ARKWEB_SCHEME_OPTION_CSP_BYPASSING = 1 << 5 | 如果设置了ARKWEB_SCHEME_OPTION_CSP_BYPASSING,则该scheme可以绕过内容安全策略(CSP)检查。 |
142| ARKWEB_SCHEME_OPTION_FETCH_ENABLED = 1 << 6 | 如果设置了ARKWEB_SCHEME_OPTION_FETCH_ENABLED,则可以发起该scheme的FETCH API请求。 |
143| ARKWEB_SCHEME_OPTION_CODE_CACHE_ENABLED = 1 << 7 | 如果设置了ARKWEB_SCHEME_OPTION_CODE_CACHE_ENABLED,则该scheme的js资源支持生成code cache。 |
144
145### ArkWeb_ResourceType
146
147```
148enum ArkWeb_ResourceType
149```
150
151**描述:**
152
153请求的资源类型。这些常量与Chromium中的ResourceType的对应项相匹配,不应重新编号。<br>
154
155**系统能力:** SystemCapability.Web.Webview.Core
156
157**起始版本:** 12
158
159| 枚举项 | 描述 |
160| -- | -- |
161| MAIN_FRAME = 0 | 顶层页面。 |
162| SUB_FRAME = 1 | Frame或Iframe。 |
163| STYLE_SHEET = 2 | CSS样式表。 |
164| SCRIPT = 3 | 外部脚本。 |
165| IMAGE = 4 | 图片(jpg/gif/png/以及其他)。 |
166| FONT_RESOURCE = 5 | 字体。 |
167| SUB_RESOURCE = 6 | 其他子资源。如果实际类型未知,则是默认类型。 |
168| OBJECT = 7 | 插件的Object(或embed)标签,或者插件请求的资源。 |
169| MEDIA = 8 | 媒体资源。 |
170| WORKER = 9 | 专用工作线程的主资源。 |
171| SHARED_WORKER = 10 | 共享工作线程的主资源。 |
172| PREFETCH = 11 | 明确的预取请求。 |
173| FAVICON = 12 | 网站图标。 |
174| XHR = 13 | XMLHttpRequest。 |
175| PING = 14 | /sendBeacon的Ping请求。 |
176| SERVICE_WORKER = 15 | service worker的主资源。 |
177| CSP_REPORT = 16 | 内容安全策略违规报告。 |
178| PLUGIN_RESOURCE = 17 | 插件请求的资源。 |
179| NAVIGATION_PRELOAD_MAIN_FRAME = 19 | 触发service worker预热的主frame跳转请求。 |
180| NAVIGATION_PRELOAD_SUB_FRAME = 20 | 触发service worker预热的子frame跳转请求。 |
181
182
183## 函数说明
184
185### ArkWeb_OnRequestStart()
186
187```
188typedef void (*ArkWeb_OnRequestStart)(const ArkWeb_SchemeHandler* schemeHandler,ArkWeb_ResourceRequest* resourceRequest,const ArkWeb_ResourceHandler* resourceHandler,bool* intercept)
189```
190
191**描述:**
192
193请求开始的回调,这将在IO线程上被调用。
194
195**系统能力:** SystemCapability.Web.Webview.Core
196
197**起始版本:** 12
198
199
200**参数:**
201
202| 参数项                                                                        | 描述 |
203|----------------------------------------------------------------------------| -- |
204| const [ArkWeb_SchemeHandler](capi-web-arkweb-schemehandler.md)* schemeHandler | ArkWeb_SchemeHandler。 |
205| [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | 通过该对象获取请求的信息。 |
206| const [ArkWeb_ResourceHandler](capi-web-arkweb-resourcehandler.md)* resourceHandler                          | 请求的ArkWeb_ResourceHandler。如果intercept设置为false,则不应使用它。 |
207| bool* intercept                                                            | 如果为true,则会拦截请求;如果为false,则不会拦截。 |
208
209### ArkWeb_OnRequestStop()
210
211```
212typedef void (*ArkWeb_OnRequestStop)(const ArkWeb_SchemeHandler* schemeHandler,const ArkWeb_ResourceRequest* resourceRequest)
213```
214
215**描述:**
216
217请求完成时的回调函数。这将在IO线程上被调用。
218
219应该使用ArkWeb_ResourceRequest_Destroy销毁resourceRequest,并使用ArkWeb_ResourceHandler_Destroy销毁在ArkWeb_OnRequestStart中接收到的ArkWeb_ResourceHandler。
220
221**系统能力:** SystemCapability.Web.Webview.Core
222
223**起始版本:** 12
224
225
226**参数:**
227
228| 参数项 | 描述 |
229| -- | -- |
230| const [ArkWeb_SchemeHandler](capi-web-arkweb-schemehandler.md)* schemeHandler | ArkWeb_SchemeHandler。 |
231| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
232
233### ArkWeb_HttpBodyStreamReadCallback()
234
235```
236typedef void (*ArkWeb_HttpBodyStreamReadCallback)(const ArkWeb_HttpBodyStream* httpBodyStream,uint8_t* buffer,int bytesRead)
237```
238
239**描述:**
240
241当OH_ArkWebHttpBodyStream_Read读取操作完成时的回调函数。
242
243**系统能力:** SystemCapability.Web.Webview.Core
244
245**起始版本:** 12
246
247
248**参数:**
249
250| 参数项                                             | 描述 |
251|-------------------------------------------------| -- |
252| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
253| uint8_t* buffer                                 | 接收数据的buffer。 |
254| int bytesRead                                   | OH_ArkWebHttpBodyStream_Read后的回调函数。如果bytesRead大于0,则表示buffer已填充了bytesRead大小的数据。调用者可以从buffer中读取数据,如果OH_ArkWebHttpBodyStream_IsEOF为false,则调用者可以继续读取剩余的数据。 |
255
256### ArkWeb_HttpBodyStreamAsyncReadCallback()
257
258```
259typedef void (*ArkWeb_HttpBodyStreamAsyncReadCallback)(const ArkWeb_HttpBodyStream *httpBodyStream,uint8_t *buffer,int bytesRead)
260```
261
262**描述:**
263
264当OH_ArkWebHttpBodyStream_AsyncRead读取操作完成时的回调函数。
265
266**系统能力:** SystemCapability.Web.Webview.Core
267
268**起始版本:** 20
269
270
271**参数:**
272
273| 参数项                                             | 描述 |
274|-------------------------------------------------| -- |
275| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
276| uint8_t* buffer                                 | 接收数据的缓存区。 |
277| int bytesRead                                   | 标识异步读取操作执行结果的字节计数值。如果bytesRead大于0,则表示buffer已填充了bytesRead大小的数据。开发者可以从buffer中读取数据,如果OH_ArkWebHttpBodyStream_IsEOF为false,则开发者可以继续读取剩余的数据。 |
278
279### ArkWeb_HttpBodyStreamInitCallback()
280
281```
282typedef void (*ArkWeb_HttpBodyStreamInitCallback)(const ArkWeb_HttpBodyStream* httpBodyStream, ArkWeb_NetError result)
283```
284
285**描述:**
286
287ArkWeb_HttpBodyStream初始化操作完成时回调函数。
288
289**系统能力:** SystemCapability.Web.Webview.Core
290
291**起始版本:** 12
292
293**参数:**
294
295| 参数项                                                                           | 描述 |
296|-------------------------------------------------------------------------------| -- |
297| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
298| [ArkWeb_NetError](capi-arkweb-net-error-list-h.md#arkweb_neterror) result     | 成功时返回ARKWEB_NET_OK,否则请参考[arkweb_net_error_list.h](capi-arkweb-net-error-list-h.md)。 |
299
300### OH_ArkWebRequestHeaderList_Destroy()
301
302```
303void OH_ArkWebRequestHeaderList_Destroy(ArkWeb_RequestHeaderList* requestHeaderList)
304```
305
306**描述:**
307
308销毁ArkWeb_RequestHeaderList对象。
309
310**系统能力:** SystemCapability.Web.Webview.Core
311
312**起始版本:** 12
313
314
315**参数:**
316
317| 参数项 | 描述 |
318| -- | -- |
319| [ArkWeb_RequestHeaderList](capi-web-arkweb-requestheaderlist.md)* requestHeaderList | 将被销毁的ArkWeb_RequestHeaderList。 |
320
321### OH_ArkWebRequestHeaderList_GetSize()
322
323```
324int32_t OH_ArkWebRequestHeaderList_GetSize(const ArkWeb_RequestHeaderList* requestHeaderList)
325```
326
327**描述:**
328
329获取请求头列表的大小。
330
331**系统能力:** SystemCapability.Web.Webview.Core
332
333**起始版本:** 12
334
335
336**参数:**
337
338| 参数项 | 描述 |
339| -- | -- |
340| const [ArkWeb_RequestHeaderList](capi-web-arkweb-requestheaderlist.md)* requestHeaderList | 请求头的列表。 |
341
342**返回:**
343
344| 类型 | 说明 |
345| -- | -- |
346| int32_t | 请求头的大小。如果requestHeaderList无效,则为-1。 |
347
348### OH_ArkWebRequestHeaderList_GetHeader()
349
350```
351void OH_ArkWebRequestHeaderList_GetHeader(const ArkWeb_RequestHeaderList* requestHeaderList,int32_t index,char** key,char** value)
352```
353
354**描述:**
355
356获取指定的请求头。
357
358**系统能力:** SystemCapability.Web.Webview.Core
359
360**起始版本:** 12
361
362
363**参数:**
364
365| 参数项 | 描述 |
366| -- | -- |
367| const ArkWeb_RequestHeaderList* requestHeaderList | 请求头列表。 |
368| int32_t index | 请求头的索引。 |
369| char** key | 请求头的键(key)。调用者必须使用OH_ArkWeb_ReleaseString函数来释放这个字符串。 |
370| char** value | 请求头的值(value)。调用者必须使用OH_ArkWeb_ReleaseString函数来释放这个字符串。 |
371
372### OH_ArkWebResourceRequest_SetUserData()
373
374```
375int32_t OH_ArkWebResourceRequest_SetUserData(ArkWeb_ResourceRequest* resourceRequest, void* userData)
376```
377
378**描述:**
379
380将一个用户数据设置到ArkWeb_ResourceRequest对象中。
381
382**系统能力:** SystemCapability.Web.Webview.Core
383
384**起始版本:** 12
385
386
387**参数:**
388
389| 参数项 | 描述 |
390| -- | -- |
391| [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
392| void* userData | 将要设置的用户数据。 |
393
394**返回:**
395
396| 类型 | 说明 |
397| -- | -- |
398| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
399
400### OH_ArkWebResourceRequest_GetUserData()
401
402```
403void* OH_ArkWebResourceRequest_GetUserData(const ArkWeb_ResourceRequest* resourceRequest)
404```
405
406**描述:**
407
408从ArkWeb_ResourceRequest获取用户数据。
409
410**系统能力:** SystemCapability.Web.Webview.Core
411
412**起始版本:** 12
413
414
415**参数:**
416
417| 参数项 | 描述 |
418| -- | -- |
419| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
420
421**返回:**
422
423| 类型 | 说明 |
424| -- | -- |
425| void* | 设置的用户数据。 |
426
427### OH_ArkWebResourceRequest_GetMethod()
428
429```
430void OH_ArkWebResourceRequest_GetMethod(const ArkWeb_ResourceRequest* resourceRequest, char** method)
431```
432
433**描述:**
434
435获取请求的method。
436
437**系统能力:** SystemCapability.Web.Webview.Core
438
439**起始版本:** 12
440
441
442**参数:**
443
444| 参数项 | 描述 |
445| -- | -- |
446| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
447| char** method | HTTP请求方法。此函数将为method字符串分配内存,调用者必须使用OH_ArkWeb_ReleaseString释放字符串。 |
448
449### OH_ArkWebResourceRequest_GetUrl()
450
451```
452void OH_ArkWebResourceRequest_GetUrl(const ArkWeb_ResourceRequest* resourceRequest, char** url)
453```
454
455**描述:**
456
457获取请求的url。
458
459**系统能力:** SystemCapability.Web.Webview.Core
460
461**起始版本:** 12
462
463
464**参数:**
465
466| 参数项 | 描述 |
467| -- | -- |
468| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
469| char** url | 请求的URL。此函数将为URL字符串分配内存,调用者必须通过OH_ArkWeb_ReleaseString释放该字符串。 |
470
471### OH_ArkWebResourceRequest_GetHttpBodyStream()
472
473```
474void OH_ArkWebResourceRequest_GetHttpBodyStream(const ArkWeb_ResourceRequest* resourceRequest,ArkWeb_HttpBodyStream** httpBodyStream)
475```
476
477**描述:**
478
479创建一个ArkWeb_HttpBodyStream,用于读取请求的上传数据。
480
481**系统能力:** SystemCapability.Web.Webview.Core
482
483**起始版本:** 12
484
485
486**参数:**
487
488| 参数项 | 描述 |
489| -- | -- |
490| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
491| [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)** httpBodyStream | 请求的上传数据。此函数将为httpBodyStream分配内存,调用者必须使用OH_ArkWebResourceRequest_DestroyHttpBodyStream释放httpBodyStream。 |
492
493### OH_ArkWebResourceRequest_DestroyHttpBodyStream()
494
495```
496void OH_ArkWebResourceRequest_DestroyHttpBodyStream(ArkWeb_HttpBodyStream* httpBodyStream)
497```
498
499**描述:**
500
501销毁ArkWeb_HttpBodyStream对象。
502
503**系统能力:** SystemCapability.Web.Webview.Core
504
505**起始版本:** 12
506
507
508**参数:**
509
510| 参数项 | 描述 |
511| -- | -- |
512| [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | 待销毁的httpBodyStream。 |
513
514### OH_ArkWebResourceRequest_GetResourceType()
515
516```
517int32_t OH_ArkWebResourceRequest_GetResourceType(const ArkWeb_ResourceRequest* resourceRequest)
518```
519
520**描述:**
521
522获取请求的资源类型。
523
524**系统能力:** SystemCapability.Web.Webview.Core
525
526**起始版本:** 12
527
528
529**参数:**
530
531| 参数项 | 描述 |
532| -- | -- |
533| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
534
535**返回:**
536
537| 类型 | 说明 |
538| -- | -- |
539| int32_t | 请求的资源类型。如果resourceRequest无效,则为-1。 |
540
541### OH_ArkWebResourceRequest_GetFrameUrl()
542
543```
544void OH_ArkWebResourceRequest_GetFrameUrl(const ArkWeb_ResourceRequest* resourceRequest, char** frameUrl)
545```
546
547**描述:**
548
549获取触发此请求的Frame的URL。
550
551**系统能力:** SystemCapability.Web.Webview.Core
552
553**起始版本:** 12
554
555
556**参数:**
557
558| 参数项 | 描述 |
559| -- | -- |
560| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
561| char** frameUrl | 触发此请求的Frame的URL。此函数将为URL字符串分配内存,并且调用者必须通过OH_ArkWeb_ReleaseString来释放该字符串。 |
562
563### OH_ArkWebHttpBodyStream_SetUserData()
564
565```
566int32_t OH_ArkWebHttpBodyStream_SetUserData(ArkWeb_HttpBodyStream* httpBodyStream, void* userData)
567```
568
569**描述:**
570
571将一个用户数据设置到ArkWeb_HttpBodyStream对象中。
572
573**系统能力:** SystemCapability.Web.Webview.Core
574
575**起始版本:** 12
576
577
578**参数:**
579
580| 参数项 | 描述 |
581| -- | -- |
582| [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
583| void* userData | 要设置的用户数据。 |
584
585**返回:**
586
587| 类型 | 说明 |
588| -- | -- |
589| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
590
591### OH_ArkWebHttpBodyStream_GetUserData()
592
593```
594void* OH_ArkWebHttpBodyStream_GetUserData(const ArkWeb_HttpBodyStream* httpBodyStream)
595```
596
597**描述:**
598
599从ArkWeb_HttpBodyStream获取用户数据。
600
601**系统能力:** SystemCapability.Web.Webview.Core
602
603**起始版本:** 12
604
605
606**参数:**
607
608| 参数项 | 描述 |
609| -- | -- |
610| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
611
612**返回:**
613
614| 类型 | 说明 |
615| -- | -- |
616| void* | 设置的用户数据。 |
617
618### OH_ArkWebHttpBodyStream_SetReadCallback()
619
620```
621int32_t OH_ArkWebHttpBodyStream_SetReadCallback(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamReadCallback readCallback)
622```
623
624**描述:**
625
626为OH_ArkWebHttpBodyStream_Read设置回调函数。OH_ArkWebHttpBodyStream_Read的结果将通过readCallback通知给调用者。<br>该回调函数将在与OH_ArkWebHttpBodyStream_Read相同的线程中运行。
627
628**系统能力:** SystemCapability.Web.Webview.Core
629
630**起始版本:** 12
631
632
633**参数:**
634
635| 参数项 | 描述 |
636| -- | -- |
637| [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
638| [ArkWeb_HttpBodyStreamReadCallback](#arkweb_httpbodystreamreadcallback) readCallback | OH_ArkWebHttpBodyStream_Read的回调函数。 |
639
640**返回:**
641
642| 类型 | 说明 |
643| -- | -- |
644| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
645
646### OH_ArkWebHttpBodyStream_SetAsyncReadCallback()
647
648```
649int32_t OH_ArkWebHttpBodyStream_SetAsyncReadCallback(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamAsyncReadCallback readCallback)
650```
651
652**描述:**
653
654为OH_ArkWebHttpBodyStream_AsyncRead设置回调函数。OH_ArkWebHttpBodyStream_AsyncRead的结果将通过readCallback通知给开发者。<br>该回调函数会在ArkWeb工作线程中运行。
655
656**系统能力:** SystemCapability.Web.Webview.Core
657
658**起始版本:** 20
659
660
661**参数:**
662
663| 参数项 | 描述 |
664| -- | -- |
665| [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
666| [ArkWeb_HttpBodyStreamAsyncReadCallback](#arkweb_httpbodystreamasyncreadcallback) readCallback | OH_ArkWebHttpBodyStream_AsyncRead的回调函数。 |
667
668**返回:**
669
670| 类型 | 说明 |
671| -- | -- |
672| int32_t | 返回0,表示成功;返回17100101,表示参数无效。 |
673
674
675### OH_ArkWebHttpBodyStream_Init()
676
677```
678int32_t OH_ArkWebHttpBodyStream_Init(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamInitCallback initCallback)
679```
680
681**描述:**
682
683初始化ArkWeb_HttpBodyStream。在调用任何其他函数之前,必须调用此函数。该接口需要在IO线程调用。
684
685**系统能力:** SystemCapability.Web.Webview.Core
686
687**起始版本:** 12
688
689
690**参数:**
691
692| 参数项 | 描述 |
693| -- | -- |
694| [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
695| [ArkWeb_HttpBodyStreamInitCallback](#arkweb_httpbodystreaminitcallback) initCallback | 初始化的回调函数。 |
696
697**返回:**
698
699| 类型 | 说明 |
700| -- | -- |
701| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
702
703### OH_ArkWebHttpBodyStream_Read()
704
705```
706void OH_ArkWebHttpBodyStream_Read(const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen)
707```
708
709**描述:**
710
711将请求的上传数据读取到buffer。buffer的大小必须大于bufLen。我们将从工作线程读取数据到buffer,因此在回调函数返回之前,不应在其他线程中使用buffer,以避免并发问题。
712
713**系统能力:** SystemCapability.Web.Webview.Core
714
715**起始版本:** 12
716
717
718**参数:**
719
720| 参数项 | 描述 |
721| -- | -- |
722| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
723| uint8_t* buffer | 接收数据的buffer。 |
724| int bufLen | 要读取的字节的大小。 |
725
726### OH_ArkWebHttpBodyStream_AsyncRead()
727
728```
729void OH_ArkWebHttpBodyStream_AsyncRead(const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen)
730```
731
732**描述:**
733
734将请求的上传数据读取至buffer,buffer的大小必须超过bufLen。数据将由工作线程读取至buffer,因此在回调函数返回前,不应在其他线程中使用缓冲区,以避免并发问题。
735
736**系统能力:** SystemCapability.Web.Webview.Core
737
738**起始版本:** 20
739
740
741**参数:**
742
743| 参数项 | 描述 |
744| -- | -- |
745| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
746| uint8_t* buffer | 接收数据的缓存区。 |
747| int bufLen | 要读取的字节的大小。 |
748
749### OH_ArkWebHttpBodyStream_GetSize()
750
751```
752uint64_t OH_ArkWebHttpBodyStream_GetSize(const ArkWeb_HttpBodyStream* httpBodyStream)
753```
754
755**描述:**
756
757获取httpBodyStream的大小。当数据以分块的形式传输或httpBodyStream无效时,始终返回0。
758
759**系统能力:** SystemCapability.Web.Webview.Core
760
761**起始版本:** 12
762
763
764**参数:**
765
766| 参数项 | 描述 |
767| -- | -- |
768| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
769
770**返回:**
771
772| 类型 | 说明 |
773| -- | -- |
774| uint64_t | httpBodyStream的大小。 |
775
776### OH_ArkWebHttpBodyStream_GetPosition()
777
778```
779uint64_t OH_ArkWebHttpBodyStream_GetPosition(const ArkWeb_HttpBodyStream* httpBodyStream)
780```
781
782**描述:**
783
784获取httpBodyStream当前的读取位置。
785
786**系统能力:** SystemCapability.Web.Webview.Core
787
788**起始版本:** 12
789
790
791**参数:**
792
793| 参数项 | 描述 |
794| -- | -- |
795| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
796
797**返回:**
798
799| 类型 | 说明 |
800| -- | -- |
801| uint64_t | httpBodyStream当前的读取位置。如果httpBodyStream无效,则位置为0。 |
802
803### OH_ArkWebHttpBodyStream_IsChunked()
804
805```
806bool OH_ArkWebHttpBodyStream_IsChunked(const ArkWeb_HttpBodyStream* httpBodyStream)
807```
808
809**描述:**
810
811获取httpBodyStream是否采用分块传输。
812
813**系统能力:** SystemCapability.Web.Webview.Core
814
815**起始版本:** 12
816
817
818**参数:**
819
820| 参数项 | 描述 |
821| -- | -- |
822| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
823
824**返回:**
825
826| 类型 | 说明 |
827| -- | -- |
828| bool | 如果采用分块传输则返回true;否则返回false。 |
829
830### OH_ArkWebHttpBodyStream_IsEof()
831
832```
833bool OH_ArkWebHttpBodyStream_IsEof(const ArkWeb_HttpBodyStream* httpBodyStream)
834```
835
836**描述:**
837
838如果httpBodyStream中的所有数据都已被读取,则返回true。对于分块传输类型的httpBodyStream,在第一次读取尝试之前返回false。
839
840**系统能力:** SystemCapability.Web.Webview.Core
841
842**起始版本:** 12
843
844
845**参数:**
846
847| 参数项 | 描述 |
848| -- | -- |
849| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
850
851**返回:**
852
853| 类型 | 说明 |
854| -- | -- |
855| bool | 如果所有数据都已被读取则返回true;否则返回false。 |
856
857### OH_ArkWebHttpBodyStream_IsInMemory()
858
859```
860bool OH_ArkWebHttpBodyStream_IsInMemory(const ArkWeb_HttpBodyStream* httpBodyStream)
861```
862
863**描述:**
864
865如果httpBodyStream中的上传数据完全在内存中,并且所有读取请求都将同步成功,则返回true。对于分块传输类型的数据,预期返回false。
866
867**系统能力:** SystemCapability.Web.Webview.Core
868
869**起始版本:** 12
870
871
872**参数:**
873
874| 参数项 | 描述 |
875| -- | -- |
876| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 |
877
878**返回:**
879
880| 类型 | 说明 |
881| -- | -- |
882| bool | 如果上传数据完全在内存中则返回true;否则返回false。 |
883
884### OH_ArkWebResourceRequest_Destroy()
885
886```
887int32_t OH_ArkWebResourceRequest_Destroy(const ArkWeb_ResourceRequest* resourceRequest)
888```
889
890**描述:**
891
892销毁ArkWeb_ResourceRequest对象。
893
894**系统能力:** SystemCapability.Web.Webview.Core
895
896**起始版本:** 12
897
898
899**参数:**
900
901| 参数项 | 描述 |
902| -- | -- |
903| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
904
905**返回:**
906
907| 类型 | 说明 |
908| -- | -- |
909| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
910
911### OH_ArkWebResourceRequest_GetReferrer()
912
913```
914void OH_ArkWebResourceRequest_GetReferrer(const ArkWeb_ResourceRequest* resourceRequest, char** referrer)
915```
916
917**描述:**
918
919获取请求的Referrer。
920
921**系统能力:** SystemCapability.Web.Webview.Core
922
923**起始版本:** 12
924
925
926**参数:**
927
928| 参数项 | 描述 |
929| -- | -- |
930| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
931| char** referrer | 请求的Referrer。此函数将为referrer字符串分配内存,调用者必须使用 OH_ArkWeb_ReleaseString 释放该字符串。 |
932
933### OH_ArkWebResourceRequest_GetRequestHeaders()
934
935```
936void OH_ArkWebResourceRequest_GetRequestHeaders(const ArkWeb_ResourceRequest* resourceRequest,ArkWeb_RequestHeaderList** requestHeaderList)
937```
938
939**描述:**
940
941获取请求的请求头列表OH_ArkWeb_RequestHeaderList。
942
943**系统能力:** SystemCapability.Web.Webview.Core
944
945**起始版本:** 12
946
947
948**参数:**
949
950| 参数项 | 描述 |
951| -- | -- |
952| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
953| [ArkWeb_RequestHeaderList](capi-web-arkweb-requestheaderlist.md)** requestHeaderList | 请求的请求头列表。 |
954
955### OH_ArkWebResourceRequest_IsRedirect()
956
957```
958bool OH_ArkWebResourceRequest_IsRedirect(const ArkWeb_ResourceRequest* resourceRequest)
959```
960
961**描述:**
962
963判断这是否是一个重定向请求。
964
965**系统能力:** SystemCapability.Web.Webview.Core
966
967**起始版本:** 12
968
969
970**参数:**
971
972| 参数项 | 描述 |
973| -- | -- |
974| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
975
976**返回:**
977
978| 类型 | 说明 |
979| -- | -- |
980| bool | 如果这是一个重定向,则返回true;否则返回false。 |
981
982### OH_ArkWebResourceRequest_IsMainFrame()
983
984```
985bool OH_ArkWebResourceRequest_IsMainFrame(const ArkWeb_ResourceRequest* resourceRequest)
986```
987
988**描述:**
989
990判断这是否是主框架文档资源的请求。
991
992**系统能力:** SystemCapability.Web.Webview.Core
993
994**起始版本:** 12
995
996
997**参数:**
998
999| 参数项 | 描述 |
1000| -- | -- |
1001| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
1002
1003**返回:**
1004
1005| 类型 | 说明 |
1006| -- | -- |
1007| bool | 如果这是来自主框架,则返回true;否则返回false。 |
1008
1009### OH_ArkWebResourceRequest_HasGesture()
1010
1011```
1012bool OH_ArkWebResourceRequest_HasGesture(const ArkWeb_ResourceRequest* resourceRequest)
1013```
1014
1015**描述:**
1016
1017判断这是否是一个由用户手势触发的请求。
1018
1019**系统能力:** SystemCapability.Web.Webview.Core
1020
1021**起始版本:** 12
1022
1023
1024**参数:**
1025
1026| 参数项 | 描述 |
1027| -- | -- |
1028| const [ArkWeb_ResourceRequest](capi-web-arkweb-resourcerequest.md)* resourceRequest | ArkWeb_ResourceRequest。 |
1029
1030**返回:**
1031
1032| 类型 | 说明 |
1033| -- | -- |
1034| bool | 如果这是由用户手势触发的,则返回true;否则返回false。 |
1035
1036### OH_ArkWeb_RegisterCustomSchemes()
1037
1038```
1039int32_t OH_ArkWeb_RegisterCustomSchemes(const char* scheme, int32_t option)
1040```
1041
1042**描述:**
1043
1044将custom scheme注册到ArkWeb。对于内置的HTTP、HTTPS、FILE、FTP、ABOUT和DATA协议,不应调用此函数。此函数应在主线程上调用并且需要在内核初始化之前调用。
1045
1046**系统能力:** SystemCapability.Web.Webview.Core
1047
1048**起始版本:** 12
1049
1050
1051**参数:**
1052
1053| 参数项 | 描述 |
1054| -- | -- |
1055| const char* scheme | 待注册的scheme。 |
1056| int32_t option | scheme的配置(行为)。 |
1057
1058**返回:**
1059
1060| 类型 | 说明 |
1061| -- | -- |
1062| int32_t | 如果返回0,表示成功;返回17100100,表示未知错误;返回17100101,表示参数无效;返回17100102,表示注册scheme的配置失败,应该在创建ArkWeb之前注册。 |
1063
1064### OH_ArkWebServiceWorker_SetSchemeHandler()
1065
1066```
1067bool OH_ArkWebServiceWorker_SetSchemeHandler(const char* scheme, ArkWeb_SchemeHandler* schemeHandler)
1068```
1069
1070**描述:**
1071
1072为指定scheme设置一个ArkWeb_SchemeHandler以拦截ServiceWorker触发的该scheme类型的请求。应该在创建BrowserContext之后设置SchemeHandler。
1073
1074可以使用WebviewController.initializeWebEngine来初始化BrowserContext而无需创建ArkWeb。
1075
1076**系统能力:** SystemCapability.Web.Webview.Core
1077
1078**起始版本:** 12
1079
1080
1081**参数:**
1082
1083| 参数项 | 描述 |
1084| -- | -- |
1085| const char* scheme | 需要被拦截的scheme。 |
1086| [ArkWeb_SchemeHandler](capi-web-arkweb-schemehandler.md)* schemeHandler | 该scheme的拦截器ArkWeb_SchemeHandler。只有通过ServiceWorker触发的请求才会通过这个schemeHandler进行通知。 |
1087
1088**返回:**
1089
1090| 类型 | 说明 |
1091| -- | -- |
1092| bool | 如果为指定scheme设置SchemeHandler成功,则返回true,否则返回false。 |
1093
1094### OH_ArkWeb_SetSchemeHandler()
1095
1096```
1097bool OH_ArkWeb_SetSchemeHandler(const char* scheme, const char* webTag, ArkWeb_SchemeHandler* schemeHandler)
1098```
1099
1100**描述:**
1101
1102为指定scheme设置一个ArkWeb_SchemeHandler以拦截该scheme类型的请求。应该在创建BrowserContext之后设置SchemeHandler。
1103
1104可以使用WebviewController.initializeWebEngine来初始化BrowserContext而无需创建ArkWeb。
1105
1106**系统能力:** SystemCapability.Web.Webview.Core
1107
1108**起始版本:** 12
1109
1110
1111**参数:**
1112
1113| 参数项 | 描述 |
1114| -- | -- |
1115| const char* scheme | 需要被拦截的scheme。 |
1116| const char* webTag | Web组件的标签名称,用于标识某个唯一组件,由开发者来保证名称唯一性。 |
1117| [ArkWeb_SchemeHandler](capi-web-arkweb-schemehandler.md)* schemeHandler | 该scheme的拦截器ArkWeb_SchemeHandler。只有从指定web触发的请求才会通过这个schemeHandler进行通知。 |
1118
1119**返回:**
1120
1121| 类型 | 说明 |
1122| -- | -- |
1123| bool | 如果为指定scheme设置SchemeHandler成功,则返回true,否则返回false。 |
1124
1125### OH_ArkWebServiceWorker_ClearSchemeHandlers()
1126
1127```
1128int32_t OH_ArkWebServiceWorker_ClearSchemeHandlers()
1129```
1130
1131**描述:**
1132
1133清除为ServiceWorker注册的SchemeHandler。
1134
1135**系统能力:** SystemCapability.Web.Webview.Core
1136
1137**起始版本:** 12
1138
1139**返回:**
1140
1141| 类型 | 说明 |
1142| -- | -- |
1143| int32_t | 如果返回0,表示成功。 |
1144
1145### OH_ArkWeb_ClearSchemeHandlers()
1146
1147```
1148int32_t OH_ArkWeb_ClearSchemeHandlers(const char* webTag)
1149```
1150
1151**描述:**
1152
1153清除为指定web注册的SchemeHandler。
1154
1155**系统能力:** SystemCapability.Web.Webview.Core
1156
1157**起始版本:** 12
1158
1159
1160**参数:**
1161
1162| 参数项 | 描述 |
1163| -- | -- |
1164| const char* webTag | Web组件的标签名称,用于标识某个唯一组件,由开发者来保证名称唯一性。 |
1165
1166**返回:**
1167
1168| 类型 | 说明 |
1169| -- | -- |
1170| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1171
1172### OH_ArkWeb_CreateSchemeHandler()
1173
1174```
1175void OH_ArkWeb_CreateSchemeHandler(ArkWeb_SchemeHandler** schemeHandler)
1176```
1177
1178**描述:**
1179
1180创建一个ArkWeb_SchemeHandler对象。
1181
1182**系统能力:** SystemCapability.Web.Webview.Core
1183
1184**起始版本:** 12
1185
1186
1187**参数:**
1188
1189| 参数项 | 描述 |
1190| -- | -- |
1191| [ArkWeb_SchemeHandler](capi-web-arkweb-schemehandler.md)** schemeHandler | 返回创建的ArkWeb_SchemeHandler。在不需要时使用OH_ArkWeb_DestoryschemeHandler销毁它。 |
1192
1193### OH_ArkWeb_DestroySchemeHandler()
1194
1195```
1196void OH_ArkWeb_DestroySchemeHandler(ArkWeb_SchemeHandler* schemeHandler)
1197```
1198
1199**描述:**
1200
1201销毁一个ArkWeb_SchemeHandler对象。
1202
1203**系统能力:** SystemCapability.Web.Webview.Core
1204
1205**起始版本:** 12
1206
1207
1208**参数:**
1209
1210| 参数项 | 描述 |
1211| -- | -- |
1212| [ArkWeb_SchemeHandler](capi-web-arkweb-schemehandler.md)* schemeHandler | 待销毁的ArkWeb_SchemeHandler。 |
1213
1214### OH_ArkWebSchemeHandler_SetUserData()
1215
1216```
1217int32_t OH_ArkWebSchemeHandler_SetUserData(ArkWeb_SchemeHandler* schemeHandler, void* userData)
1218```
1219
1220**描述:**
1221
1222将一个用户数据设置到ArkWeb_SchemeHandler对象中。
1223
1224**系统能力:** SystemCapability.Web.Webview.Core
1225
1226**起始版本:** 12
1227
1228
1229**参数:**
1230
1231| 参数项 | 描述 |
1232| -- | -- |
1233| [ArkWeb_SchemeHandler](capi-web-arkweb-schemehandler.md)* schemeHandler | ArkWeb_SchemeHandler。 |
1234| void* userData | 要设置的用户数据。 |
1235
1236**返回:**
1237
1238| 类型 | 说明 |
1239| -- | -- |
1240| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1241
1242### OH_ArkWebSchemeHandler_GetUserData()
1243
1244```
1245void* OH_ArkWebSchemeHandler_GetUserData(const ArkWeb_SchemeHandler* schemeHandler)
1246```
1247
1248**描述:**
1249
1250从ArkWeb_SchemeHandler获取用户数据。
1251
1252**系统能力:** SystemCapability.Web.Webview.Core
1253
1254**起始版本:** 12
1255
1256
1257**参数:**
1258
1259| 参数项 | 描述 |
1260| -- | -- |
1261| const [ArkWeb_SchemeHandler](capi-web-arkweb-schemehandler.md)* schemeHandler | ArkWeb_SchemeHandler。 |
1262
1263**返回:**
1264
1265| 类型 | 说明 |
1266| -- | -- |
1267| void* | 设置的用户数据。 |
1268
1269### OH_ArkWebSchemeHandler_SetOnRequestStart()
1270
1271```
1272int32_t OH_ArkWebSchemeHandler_SetOnRequestStart(ArkWeb_SchemeHandler* schemeHandler,ArkWeb_OnRequestStart onRequestStart)
1273```
1274
1275**描述:**
1276
1277为SchemeHandler设置OnRequestStart回调。
1278
1279**系统能力:** SystemCapability.Web.Webview.Core
1280
1281**起始版本:** 12
1282
1283
1284**参数:**
1285
1286| 参数项 | 描述 |
1287| -- | -- |
1288| [ArkWeb_SchemeHandler](capi-web-arkweb-schemehandler.md)* schemeHandler | 该scheme的SchemeHandler。 |
1289| [ArkWeb_OnRequestStart](#arkweb_onrequeststart) onRequestStart | OnRequestStart回调函数。 |
1290
1291**返回:**
1292
1293| 类型 | 说明 |
1294| -- | -- |
1295| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1296
1297### OH_ArkWebSchemeHandler_SetOnRequestStop()
1298
1299```
1300int32_t OH_ArkWebSchemeHandler_SetOnRequestStop(ArkWeb_SchemeHandler* schemeHandler,ArkWeb_OnRequestStop onRequestStop)
1301```
1302
1303**描述:**
1304
1305为SchemeHandler设置OnRequestStop回调。
1306
1307**系统能力:** SystemCapability.Web.Webview.Core
1308
1309**起始版本:** 12
1310
1311
1312**参数:**
1313
1314| 参数项 | 描述 |
1315| -- | -- |
1316| [ArkWeb_SchemeHandler](capi-web-arkweb-schemehandler.md)* schemeHandler | 该scheme的SchemeHandler。 |
1317| [ArkWeb_OnRequestStop](#arkweb_onrequeststop) onRequestStop | OnRequestStop回调函数。 |
1318
1319**返回:**
1320
1321| 类型 | 说明 |
1322| -- | -- |
1323| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1324
1325### OH_ArkWeb_CreateResponse()
1326
1327```
1328void OH_ArkWeb_CreateResponse(ArkWeb_Response** response)
1329```
1330
1331**描述:**
1332
1333为被拦截的请求创建一个ArkWeb_Response对象。
1334
1335**系统能力:** SystemCapability.Web.Webview.Core
1336
1337**起始版本:** 12
1338
1339
1340**参数:**
1341
1342| 参数项 | 描述 |
1343| -- | -- |
1344| [ArkWeb_Response](capi-web-arkweb-response.md)** response | 返回创建的ArkWeb_Response。在不需要时使用OH_ArkWeb_DestoryResponse进行销毁。 |
1345
1346### OH_ArkWeb_DestroyResponse()
1347
1348```
1349void OH_ArkWeb_DestroyResponse(ArkWeb_Response* response)
1350```
1351
1352**描述:**
1353
1354销毁一个ArkWeb_Response对象。
1355
1356**系统能力:** SystemCapability.Web.Webview.Core
1357
1358**起始版本:** 12
1359
1360**参数:**
1361
1362| 参数项 | 描述 |
1363| -- | -- |
1364| [ArkWeb_Response](capi-web-arkweb-response.md)* response | 待销毁的ArkWeb_Response。 |
1365
1366### OH_ArkWebResponse_SetUrl()
1367
1368```
1369int32_t OH_ArkWebResponse_SetUrl(ArkWeb_Response* response, const char* url)
1370```
1371
1372**描述:**
1373
1374设置经过重定向或由于HSTS而改变后的解析URL,设置后会触发跳转。
1375
1376**系统能力:** SystemCapability.Web.Webview.Core
1377
1378**起始版本:** 12
1379
1380
1381**参数:**
1382
1383| 参数项 | 描述 |
1384| -- | -- |
1385| [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1386| const char* url | 解析后的URL。 |
1387
1388**返回:**
1389
1390| 类型 | 说明 |
1391| -- | -- |
1392| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1393
1394### OH_ArkWebResponse_GetUrl()
1395
1396```
1397void OH_ArkWebResponse_GetUrl(const ArkWeb_Response* response, char** url)
1398```
1399
1400**描述:**
1401
1402获取经过重定向或由于HSTS而更改后的解析URL。
1403
1404**系统能力:** SystemCapability.Web.Webview.Core
1405
1406**起始版本:** 12
1407
1408
1409**参数:**
1410
1411| 参数项 | 描述 |
1412| -- | -- |
1413| const [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1414| char** url | 解析后的URL。 |
1415
1416### OH_ArkWebResponse_SetError()
1417
1418```
1419int32_t OH_ArkWebResponse_SetError(ArkWeb_Response* response, ArkWeb_NetError errorCode)
1420```
1421
1422**描述:**
1423
1424给ArkWeb_Response对象设置一个错误码。
1425
1426**系统能力:** SystemCapability.Web.Webview.Core
1427
1428**起始版本:** 12
1429
1430
1431**参数:**
1432
1433| 参数项 | 描述 |
1434| -- | -- |
1435| [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1436| [ArkWeb_NetError](capi-arkweb-net-error-list-h.md#arkweb_neterror) errorCode | 失败请求的错误码。 |
1437
1438**返回:**
1439
1440| 类型 | 说明 |
1441| -- | -- |
1442| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1443
1444### OH_ArkWebResponse_GetError()
1445
1446```
1447ArkWeb_NetError OH_ArkWebResponse_GetError(const ArkWeb_Response* response)
1448```
1449
1450**描述:**
1451
1452获取ArkWeb_Response的错误码。
1453
1454**系统能力:** SystemCapability.Web.Webview.Core
1455
1456**起始版本:** 12
1457
1458
1459**参数:**
1460
1461| 参数项                                 | 描述 |
1462|-------------------------------------| -- |
1463| const [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1464
1465**返回:**
1466
1467| 类型 | 说明 |
1468| -- | -- |
1469| [ArkWeb_NetError](capi-arkweb-net-error-list-h.md#arkweb_neterror) | ArkWeb_Response的错误码。 |
1470
1471### OH_ArkWebResponse_SetStatus()
1472
1473```
1474int32_t OH_ArkWebResponse_SetStatus(ArkWeb_Response* response, int status)
1475```
1476
1477**描述:**
1478
1479为ArkWeb_Response对象设置一个HTTP状态码。
1480
1481**系统能力:** SystemCapability.Web.Webview.Core
1482
1483**起始版本:** 12
1484
1485
1486**参数:**
1487
1488| 参数项 | 描述 |
1489| -- | -- |
1490| [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1491| int status | 请求的HTTP状态码。 |
1492
1493**返回:**
1494
1495| 类型 | 说明 |
1496| -- | -- |
1497| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1498
1499### OH_ArkWebResponse_GetStatus()
1500
1501```
1502int OH_ArkWebResponse_GetStatus(const ArkWeb_Response* response)
1503```
1504
1505**描述:**
1506
1507获取ArkWeb_Response的HTTP状态码。
1508
1509**系统能力:** SystemCapability.Web.Webview.Core
1510
1511**起始版本:** 12
1512
1513
1514**参数:**
1515
1516| 参数项                                 | 描述 |
1517|-------------------------------------| -- |
1518| const [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1519
1520**返回:**
1521
1522| 类型 | 说明 |
1523| -- | -- |
1524| int | ArkWeb_Response的HTTP状态码。如果ArkWeb_Response无效,则为-1。 |
1525
1526### OH_ArkWebResponse_SetStatusText()
1527
1528```
1529int32_t OH_ArkWebResponse_SetStatusText(ArkWeb_Response* response, const char* statusText)
1530```
1531
1532**描述:**
1533
1534为ArkWeb_Response设置状态文本。
1535
1536**系统能力:** SystemCapability.Web.Webview.Core
1537
1538**起始版本:** 12
1539
1540
1541**参数:**
1542
1543| 参数项 | 描述 |
1544| -- | -- |
1545| [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1546| const char* statusText | 请求的状态文本。 |
1547
1548**返回:**
1549
1550| 类型 | 说明 |
1551| -- | -- |
1552| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1553
1554### OH_ArkWebResponse_GetStatusText()
1555
1556```
1557void OH_ArkWebResponse_GetStatusText(const ArkWeb_Response* response, char** statusText)
1558```
1559
1560**描述:**
1561
1562获取ArkWeb_Response的状态文本。
1563
1564**系统能力:** SystemCapability.Web.Webview.Core
1565
1566**起始版本:** 12
1567
1568
1569**参数:**
1570
1571| 参数项 | 描述 |
1572| -- | -- |
1573| const [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1574| char** statusText | 返回ArkWeb_Response的状态文本。此函数将为statusText字符串分配内存,调用方必须通过OH_ArkWeb_ReleaseString释放该字符串。 |
1575
1576### OH_ArkWebResponse_SetMimeType()
1577
1578```
1579int32_t OH_ArkWebResponse_SetMimeType(ArkWeb_Response* response, const char* mimeType)
1580```
1581
1582**描述:**
1583
1584为ArkWeb_Response设置媒体类型。
1585
1586**系统能力:** SystemCapability.Web.Webview.Core
1587
1588**起始版本:** 12
1589
1590
1591**参数:**
1592
1593| 参数项 | 描述 |
1594| -- | -- |
1595| [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1596| const char* mimeType | 请求的媒体类型。 |
1597
1598**返回:**
1599
1600| 类型 | 说明 |
1601| -- | -- |
1602| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1603
1604### OH_ArkWebResponse_GetMimeType()
1605
1606```
1607void OH_ArkWebResponse_GetMimeType(const ArkWeb_Response* response, char** mimeType)
1608```
1609
1610**描述:**
1611
1612获取ArkWeb_Response的媒体类型。
1613
1614**系统能力:** SystemCapability.Web.Webview.Core
1615
1616**起始版本:** 12
1617
1618
1619**参数:**
1620
1621| 参数项 | 描述 |
1622| -- | -- |
1623| const [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1624| char** mimeType | 返回ArkWeb_Response的媒体类型。此函数将为mimeType字符串分配内存,调用方必须通过OH_ArkWeb_ReleaseString释放该字符串。 |
1625
1626### OH_ArkWebResponse_SetCharset()
1627
1628```
1629int32_t OH_ArkWebResponse_SetCharset(ArkWeb_Response* response, const char* charset)
1630```
1631
1632**描述:**
1633
1634为ArkWeb_Response设置字符集。
1635
1636**系统能力:** SystemCapability.Web.Webview.Core
1637
1638**起始版本:** 12
1639
1640
1641**参数:**
1642
1643| 参数项 | 描述 |
1644| -- | -- |
1645| [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1646| const char* charset | 请求的字符集。 |
1647
1648**返回:**
1649
1650| 类型 | 说明 |
1651| -- | -- |
1652| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1653
1654### OH_ArkWebResponse_GetCharset()
1655
1656```
1657void OH_ArkWebResponse_GetCharset(const ArkWeb_Response* response, char** charset)
1658```
1659
1660**描述:**
1661
1662获取ArkWeb_Response的字符集。
1663
1664**系统能力:** SystemCapability.Web.Webview.Core
1665
1666**起始版本:** 12
1667
1668
1669**参数:**
1670
1671| 参数项 | 描述 |
1672| -- | -- |
1673| const [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1674| char** charset | 返回ArkWeb_Response的字符集。此函数将为charset字符串分配内存,调用方必须通过OH_ArkWeb_ReleaseString释放字符串。 |
1675
1676### OH_ArkWebResponse_SetHeaderByName()
1677
1678```
1679int32_t OH_ArkWebResponse_SetHeaderByName(ArkWeb_Response* response,const char* name,const char* value,bool overwrite)
1680```
1681
1682**描述:**
1683
1684为ArkWeb_Response设置一个header。
1685
1686**系统能力:** SystemCapability.Web.Webview.Core
1687
1688**起始版本:** 12
1689
1690
1691**参数:**
1692
1693| 参数项 | 描述 |
1694| -- | -- |
1695| [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1696| const char* name | header的名称。 |
1697| const char* value | header的值。 |
1698| bool overwrite | 如果为true,将覆盖现有的header,否则不覆盖。 |
1699
1700**返回:**
1701
1702| 类型 | 说明 |
1703| -- | -- |
1704| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1705
1706### OH_ArkWebResponse_GetHeaderByName()
1707
1708```
1709void OH_ArkWebResponse_GetHeaderByName(const ArkWeb_Response* response, const char* name, char** value)
1710```
1711
1712**描述:**
1713
1714从ArkWeb_Response中获取header。
1715
1716**系统能力:** SystemCapability.Web.Webview.Core
1717
1718**起始版本:** 12
1719
1720
1721**参数:**
1722
1723| 参数项 | 描述 |
1724| -- | -- |
1725| const [ArkWeb_Response](capi-web-arkweb-response.md)* response | ArkWeb_Response。 |
1726| const char* name | header的名称。 |
1727| char** value | 返回header的值。此函数将为value字符串分配内存,调用方必须通过OH_ArkWeb_ReleaseString释放该字符串。 |
1728
1729### OH_ArkWebResourceHandler_Destroy()
1730
1731```
1732int32_t OH_ArkWebResourceHandler_Destroy(const ArkWeb_ResourceHandler* resourceHandler)
1733```
1734
1735**描述:**
1736
1737销毁一个ArkWeb_ResourceHandler对象。
1738
1739**系统能力:** SystemCapability.Web.Webview.Core
1740
1741**起始版本:** 12
1742
1743
1744**参数:**
1745
1746| 参数项                                               | 描述 |
1747|---------------------------------------------------| -- |
1748| const [ArkWeb_ResourceHandler](capi-web-arkweb-resourcehandler.md)* resourceHandler | ArkWeb_ResourceHandler。 |
1749
1750**返回:**
1751
1752| 类型 | 说明 |
1753| -- | -- |
1754| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1755
1756### OH_ArkWebResourceHandler_DidReceiveResponse()
1757
1758```
1759int32_t OH_ArkWebResourceHandler_DidReceiveResponse(const ArkWeb_ResourceHandler* resourceHandler,const ArkWeb_Response* response)
1760```
1761
1762**描述:**
1763
1764将构造的响应头传递给被拦截的请求。
1765
1766**系统能力:** SystemCapability.Web.Webview.Core
1767
1768**起始版本:** 12
1769
1770
1771**参数:**
1772
1773| 参数项 | 描述 |
1774| -- | -- |
1775| const [ArkWeb_ResourceHandler](capi-web-arkweb-resourcehandler.md)* resourceHandler | 该请求的ArkWeb_ResourceHandler。 |
1776| const [ArkWeb_Response](capi-web-arkweb-response.md)* response | 该拦截请求的ArkWeb_Response。 |
1777
1778**返回:**
1779
1780| 类型 | 说明 |
1781| -- | -- |
1782| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1783
1784### OH_ArkWebResourceHandler_DidReceiveData()
1785
1786```
1787int32_t OH_ArkWebResourceHandler_DidReceiveData(const ArkWeb_ResourceHandler* resourceHandler,const uint8_t* buffer,int64_t bufLen)
1788```
1789
1790**描述:**
1791
1792将构造的响应体传递给被拦截的请求。
1793
1794**系统能力:** SystemCapability.Web.Webview.Core
1795
1796**起始版本:** 12
1797
1798
1799**参数:**
1800
1801| 参数项 | 描述 |
1802| -- | -- |
1803| const [ArkWeb_ResourceHandler](capi-web-arkweb-resourcehandler.md)* resourceHandler | 该请求的ArkWeb_ResourceHandler。 |
1804| const uint8_t* buffer | 要发送的buffer数据。 |
1805| int64_t bufLen | buffer的大小。 |
1806
1807**返回:**
1808
1809| 类型 | 说明 |
1810| -- | -- |
1811| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1812
1813### OH_ArkWebResourceHandler_DidFinish()
1814
1815```
1816int32_t OH_ArkWebResourceHandler_DidFinish(const ArkWeb_ResourceHandler* resourceHandler)
1817```
1818
1819**描述:**
1820
1821通知ArkWeb内核被拦截的请求已经完成,并且没有更多的数据可用。
1822
1823**系统能力:** SystemCapability.Web.Webview.Core
1824
1825**起始版本:** 12
1826
1827
1828**参数:**
1829
1830| 参数项 | 描述 |
1831| -- | -- |
1832| const [ArkWeb_ResourceHandler](capi-web-arkweb-resourcehandler.md)* resourceHandler | 该请求的ArkWeb_ResourceHandler。 |
1833
1834**返回:**
1835
1836| 类型 | 说明 |
1837| -- | -- |
1838| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1839
1840### OH_ArkWebResourceHandler_DidFailWithError()
1841
1842```
1843int32_t OH_ArkWebResourceHandler_DidFailWithError(const ArkWeb_ResourceHandler* resourceHandler,ArkWeb_NetError errorCode)
1844```
1845
1846**描述:**
1847
1848通知ArkWeb内核,被拦截的请求应该失败。
1849
1850**系统能力:** SystemCapability.Web.Webview.Core
1851
1852**起始版本:** 12
1853
1854
1855**参数:**
1856
1857| 参数项 | 描述 |
1858| -- | -- |
1859| const [ArkWeb_ResourceHandler](capi-web-arkweb-resourcehandler.md)* resourceHandler | 用于被拦截的URL请求。可以通过ArkWeb_ResourceHandler发送自定义请求头以及自定义请求体。 |
1860| [ArkWeb_NetError](capi-arkweb-net-error-list-h.md#arkweb_neterror) errorCode | 该请求的错误码。请参考[arkweb_net_error_list.h](capi-arkweb-net-error-list-h.md)。 |
1861
1862**返回:**
1863
1864| 类型 | 说明 |
1865| -- | -- |
1866| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1867
1868### OH_ArkWebResourceHandler_DidFailWithErrorV2()
1869
1870```
1871int32_t OH_ArkWebResourceHandler_DidFailWithErrorV2(const ArkWeb_ResourceHandler* resourceHandler,ArkWeb_NetError errorCode,bool completeIfNoResponse)
1872```
1873
1874**描述:**
1875
1876通知ArkWeb内核,被拦截的请求应该失败。对比[OH_ArkWebResourceHandler_DidFailWithError](#oh_arkwebresourcehandler_didfailwitherror)接口,新增参数completeIfNoResponse,值为true时,若之前未调用过[OH_ArkWebResourceHandler_DidReceiveResponse](#oh_arkwebresourcehandler_didreceiveresponse),则会自动生成一个response以完成此次网络请求,网络错误码为-104;值为false时,将等待应用调用[OH_ArkWebResourceHandler_DidReceiveResponse](#oh_arkwebresourcehandler_didreceiveresponse)并传入response,不会直接完成此次网络请求。
1877
1878**系统能力:** SystemCapability.Web.Webview.Core
1879
1880**起始版本:** 20
1881
1882
1883**参数:**
1884
1885| 参数项 | 描述 |
1886| -- | -- |
1887| const [ArkWeb_ResourceHandler](capi-web-arkweb-resourcehandler.md)* resourceHandler | 用于被拦截的URL请求。可以通过ArkWeb_ResourceHandler发送自定义请求头以及自定义请求体。 |
1888| [ArkWeb_NetError](capi-arkweb-net-error-list-h.md#arkweb_neterror) errorCode | 该请求的错误码。请参考[arkweb_net_error_list.h](capi-arkweb-net-error-list-h.md)。 |
1889| bool completeIfNoResponse | 若之前未调用过[OH_ArkWebResourceHandler_DidReceiveResponse](#oh_arkwebresourcehandler_didreceiveresponse),调用[OH_ArkWebResourceHandler_DidFailWithErrorV2](#oh_arkwebresourcehandler_didfailwitherrorv2)时,此次网络请求是否完成;值为true时,若之前未调用过[OH_ArkWebResourceHandler_DidReceiveResponse](#oh_arkwebresourcehandler_didreceiveresponse),则会自动生成一个response以完成此次网络请求,网络错误码为-104;值为false时,将等待应用调用[OH_ArkWebResourceHandler_DidReceiveResponse](#oh_arkwebresourcehandler_didreceiveresponse)并传入response,不会直接完成此次网络请求。 |
1890
1891**返回:**
1892
1893| 类型 | 说明 |
1894| -- | -- |
1895| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 |
1896
1897### OH_ArkWeb_ReleaseString()
1898
1899```
1900void OH_ArkWeb_ReleaseString(char* string)
1901```
1902
1903**描述:**
1904
1905释放由NDK接口创建的字符串。
1906
1907**系统能力:** SystemCapability.Web.Webview.Core
1908
1909**起始版本:** 12
1910
1911
1912**参数:**
1913
1914| 参数项 | 描述 |
1915| -- | -- |
1916| char* string | 待释放的字符串。 |
1917
1918### OH_ArkWeb_ReleaseByteArray()
1919
1920```
1921void OH_ArkWeb_ReleaseByteArray(uint8_t* byteArray)
1922```
1923
1924**描述:**
1925
1926释放由NDK接口创建的字节数组。
1927
1928**系统能力:** SystemCapability.Web.Webview.Core
1929
1930**起始版本:** 12
1931
1932
1933**参数:**
1934
1935| 参数项 | 描述 |
1936| -- | -- |
1937| uint8_t* byteArray | 待释放的字节数组。 |
1938
1939
1940