diff --git a/zh-cn/application-dev/reference/apis-arkweb/capi-arkweb-scheme-handler-h.md b/zh-cn/application-dev/reference/apis-arkweb/capi-arkweb-scheme-handler-h.md index 219875ba21d0367e2aa69ee622cb727b7e39c610..81cb23f55980b2bb3388e1d77af68578ebd3b235 100644 --- a/zh-cn/application-dev/reference/apis-arkweb/capi-arkweb-scheme-handler-h.md +++ b/zh-cn/application-dev/reference/apis-arkweb/capi-arkweb-scheme-handler-h.md @@ -41,6 +41,7 @@ | [typedef void (\*ArkWeb_OnRequestStart)(const ArkWeb_SchemeHandler* schemeHandler,ArkWeb_ResourceRequest* resourceRequest,const ArkWeb_ResourceHandler* resourceHandler,bool* intercept)](#arkweb_onrequeststart) | ArkWeb_OnRequestStart | 请求开始的回调,这将在IO线程上被调用。 | | [typedef void (\*ArkWeb_OnRequestStop)(const ArkWeb_SchemeHandler* schemeHandler,const ArkWeb_ResourceRequest* resourceRequest)](#arkweb_onrequeststop) | ArkWeb_OnRequestStop | 请求完成时的回调函数。这将在IO线程上被调用。
应该使用ArkWeb_ResourceRequest_Destroy销毁resourceRequest,
并使用ArkWeb_ResourceHandler_Destroy销毁在ArkWeb_OnRequestStart中接收到的ArkWeb_ResourceHandler。 | | [typedef void (\*ArkWeb_HttpBodyStreamReadCallback)(const ArkWeb_HttpBodyStream* httpBodyStream,uint8_t* buffer,int bytesRead)](#arkweb_httpbodystreamreadcallback) | ArkWeb_HttpBodyStreamReadCallback | 当OH_ArkWebHttpBodyStream_Read读取操作完成时的回调函数。 | +| [typedef void (\*ArkWeb_HttpBodyStreamAsyncReadCallback)(const ArkWeb_HttpBodyStream* httpBodyStream,uint8_t* buffer,int bytesRead)](#arkweb_httpbodystreamasyncreadcallback) | ArkWeb_HttpBodyStreamAsyncReadCallback | 当OH_ArkWebHttpBodyStream_AsyncRead读取操作完成时的回调函数。
**起始版本:** 20 | | [typedef void (\*ArkWeb_HttpBodyStreamInitCallback)(const ArkWeb_HttpBodyStream* httpBodyStream, ArkWeb_NetError result)](#arkweb_httpbodystreaminitcallback) | ArkWeb_HttpBodyStreamInitCallback | ArkWeb_HttpBodyStream初始化操作完成时回调函数。 | | [void OH_ArkWebRequestHeaderList_Destroy(ArkWeb_RequestHeaderList* requestHeaderList)](#oh_arkwebrequestheaderlist_destroy) | - | 销毁ArkWeb_RequestHeaderList对象。 | | [int32_t OH_ArkWebRequestHeaderList_GetSize(const ArkWeb_RequestHeaderList* requestHeaderList)](#oh_arkwebrequestheaderlist_getsize) | - | 获取请求头列表的大小。 | @@ -56,8 +57,10 @@ | [int32_t OH_ArkWebHttpBodyStream_SetUserData(ArkWeb_HttpBodyStream* httpBodyStream, void* userData)](#oh_arkwebhttpbodystream_setuserdata) | - | 将一个用户数据设置到ArkWeb_HttpBodyStream对象中。 | | [void* OH_ArkWebHttpBodyStream_GetUserData(const ArkWeb_HttpBodyStream* httpBodyStream)](#oh_arkwebhttpbodystream_getuserdata) | - | 从ArkWeb_HttpBodyStream获取用户数据。 | | [int32_t OH_ArkWebHttpBodyStream_SetReadCallback(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamReadCallback readCallback)](#oh_arkwebhttpbodystream_setreadcallback) | - | 为OH_ArkWebHttpBodyStream_Read设置回调函数。OH_ArkWebHttpBodyStream_Read的结果将通过readCallback通知给调用者。
该回调函数将在与OH_ArkWebHttpBodyStream_Read相同的线程中运行。 | +| [int32_t OH_ArkWebHttpBodyStream_SetAsyncReadCallback(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamReadCallback readCallback)](#oh_arkwebhttpbodystream_setasyncreadcallback) | - | 为OH_ArkWebHttpBodyStream_AsyncRead设置回调函数。OH_ArkWebHttpBodyStream_AsyncRead的结果将通过readCallback通知给调用者。
该回调函数将在与OH_ArkWebHttpBodyStream_AsyncRead相同的线程中运行。 | | [int32_t OH_ArkWebHttpBodyStream_Init(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamInitCallback initCallback)](#oh_arkwebhttpbodystream_init) | - | 初始化ArkWeb_HttpBodyStream。在调用任何其他函数之前,必须调用此函数。该接口需要在IO线程调用。 | | [void OH_ArkWebHttpBodyStream_Read(const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen)](#oh_arkwebhttpbodystream_read) | - | 将请求的上传数据读取到buffer。buffer的大小必须大于bufLen。我们将从工作线程读取数据到buffer,因此在回调函数返回之前,不应在其他线程中使用buffer,以避免并发问题。 | +| [void OH_ArkWebHttpBodyStream_AsyncRead(const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen)](#oh_arkwebhttpbodystream_asyncread) | - | 将请求的上传数据读取到buffer。buffer的大小必须大于bufLen。我们将从工作线程读取数据到buffer,因此在回调函数返回之前,不应在其他线程中使用buffer,以避免并发问题。 | | [uint64_t OH_ArkWebHttpBodyStream_GetSize(const ArkWeb_HttpBodyStream* httpBodyStream)](#oh_arkwebhttpbodystream_getsize) | - | 获取httpBodyStream的大小。当数据以分块的形式传输或httpBodyStream无效时,始终返回0。 | | [uint64_t OH_ArkWebHttpBodyStream_GetPosition(const ArkWeb_HttpBodyStream* httpBodyStream)](#oh_arkwebhttpbodystream_getposition) | - | 获取httpBodyStream当前的读取位置。 | | [bool OH_ArkWebHttpBodyStream_IsChunked(const ArkWeb_HttpBodyStream* httpBodyStream)](#oh_arkwebhttpbodystream_ischunked) | - | 获取httpBodyStream是否采用分块传输。 | @@ -242,6 +245,29 @@ typedef void (*ArkWeb_HttpBodyStreamReadCallback)(const ArkWeb_HttpBodyStream* h | uint8_t* buffer | 接收数据的buffer。 | | int bytesRead | OH_ArkWebHttpBodyStream_Read后的回调函数。如果bytesRead大于0,则表示buffer已填充了bytesRead大小的数据。调用者可以从buffer中读取数据,如果OH_ArkWebHttpBodyStream_IsEOF为false,则调用者可以继续读取剩余的数据。 | +### ArkWeb_HttpBodyStreamAsyncReadCallback() + +``` +typedef void (*ArkWeb_HttpBodyStreamAsyncReadCallback)(const ArkWeb_HttpBodyStream *httpBodyStream,uint8_t *buffer,int bytesRead) +``` + +**描述:** + +当OH_ArkWebHttpBodyStream_AsyncRead读取操作完成时的回调函数。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**起始版本:** 20 + + +**参数:** + +| 参数 | 描述 | +|-------------------------------------------------| -- | +| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 | +| uint8_t* buffer | 接收数据的buffer。 | +| int bytesRead | OH_ArkWebHttpBodyStream_AsyncRead后的回调函数。如果bytesRead大于0,则表示buffer已填充了bytesRead大小的数据。调用者可以从buffer中读取数据,如果OH_ArkWebHttpBodyStream_IsEOF为false,则调用者可以继续读取剩余的数据。 | + ### ArkWeb_HttpBodyStreamInitCallback() ``` @@ -609,6 +635,35 @@ int32_t OH_ArkWebHttpBodyStream_SetReadCallback(ArkWeb_HttpBodyStream* httpBodyS | -- | -- | | int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 | +### OH_ArkWebHttpBodyStream_SetAsyncReadCallback() + +``` +int32_t OH_ArkWebHttpBodyStream_SetAsyncReadCallback(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamAsyncReadCallback readCallback) +``` + +**描述:** + +为OH_ArkWebHttpBodyStream_AsyncRead设置回调函数。OH_ArkWebHttpBodyStream_AsyncRead的结果将通过readCallback通知给调用者。
该回调函数可以和OH_ArkWebHttpBodyStream_AsyncRead不同的线程中运行。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**起始版本:** 20 + + +**参数:** + +| 参数 | 描述 | +| -- | -- | +| [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 | +| [ArkWeb_HttpBodyStreamAsyncReadCallback](#arkweb_httpbodystreamasyncreadcallback) readCallback | OH_ArkWebHttpBodyStream_AsyncRead的回调函数。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | 如果返回0,表示成功;返回17100101,表示参数无效。 | + + ### OH_ArkWebHttpBodyStream_Init() ``` @@ -652,6 +707,29 @@ void OH_ArkWebHttpBodyStream_Read(const ArkWeb_HttpBodyStream* httpBodyStream, u **起始版本:** 12 +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| const [ArkWeb_HttpBodyStream](capi-web-arkweb-httpbodystream.md)* httpBodyStream | ArkWeb_HttpBodyStream。 | +| uint8_t* buffer | 接收数据的buffer。 | +| int bufLen | 要读取的字节的大小。 | + +### OH_ArkWebHttpBodyStream_AsyncRead() + +``` +void OH_ArkWebHttpBodyStream_AsyncRead(const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen) +``` + +**描述:** + +将请求的上传数据读取到buffer。buffer的大小必须大于bufLen。我们将从工作线程读取数据到buffer,因此在回调函数返回之前,不应在其他线程中使用buffer,以避免并发问题。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**起始版本:** 20 + + **参数:** | 参数项 | 描述 |