harmony 鸿蒙arkweb_scheme_handler.h
arkweb_scheme_handler.h
概述
声明用于拦截来自ArkWeb的请求的API。
库: libohweb.so
引用文件:
系统能力: SystemCapability.Web.Webview.Core
起始版本: 12
相关模块:Web
相关示例:ArkWebSchemeHandler
汇总
类型定义
名称 | 描述 |
---|---|
typedef enum ArkWeb_CustomSchemeOption ArkWeb_CustomSchemeOption | custom scheme的配置信息。 |
typedef enum ArkWeb_ResourceType ArkWeb_ResourceType | 请求的资源类型。 |
typedef struct ArkWebSchemeHandler ArkWeb_SchemeHandler | 该类用于拦截指定scheme的请求。 |
typedef struct ArkWebResourceHandler ArkWeb_ResourceHandler | 用于被拦截的URL请求。 |
typedef struct ArkWebResponse ArkWeb_Response | 为被拦截的请求构造一个ArkWeb_Response。 |
typedef struct ArkWebResourceRequest ArkWeb_ResourceRequest | 对应内核的一个请求,可以通过OH_ArkWeb_ResourceRequest获取请求的URL、method、post data以及其他信息。 |
typedef struct ArkWebRequestHeaderList ArkWeb_RequestHeaderList | 请求头列表。 |
typedef struct ArkWebHttpBodyStream ArkWeb_HttpBodyStream | 请求的上传数据。 |
typedef void(* ArkWeb_OnRequestStart) (const ArkWeb_SchemeHandler *schemeHandler, ArkWeb_ResourceRequest *resourceRequest, const ArkWeb_ResourceHandler *resourceHandler, bool *intercept) | 请求开始的回调,这将在IO线程上被调用。 |
typedef void(* ArkWeb_OnRequestStop) (const ArkWeb_SchemeHandler *schemeHandler, const ArkWeb_ResourceRequest *resourceRequest) | 请求完成时的回调函数。 |
typedef void(* ArkWeb_HttpBodyStreamReadCallback) (const ArkWeb_HttpBodyStream *httpBodyStream, uint8_t *buffer, int bytesRead) | 当OH_ArkWebHttpBodyStream_Read读取操作完成时的回调函数。 |
typedef void(* ArkWeb_HttpBodyStreamInitCallback) (const ArkWeb_HttpBodyStream *httpBodyStream, ArkWeb_NetError result) | ArkWeb_HttpBodyStream初始化操作完成时回调函数。 |
枚举
名称 | 描述 |
---|---|
ArkWeb_CustomSchemeOption { OH_ARKWEB_SCHEME_OPTION_NONE = 0, ARKWEB_SCHEME_OPTION_STANDARD = 1 << 0, ARKWEB_SCHEME_OPTION_LOCAL = 1 << 1, ARKWEB_SCHEME_OPTION_DISPLAY_ISOLATED = 1 << 2, ARKWEB_SCHEME_OPTION_SECURE = 1 << 3, ARKWEB_SCHEME_OPTION_CORS_ENABLED = 1 << 4, ARKWEB_SCHEME_OPTION_CSP_BYPASSING = 1 << 5, ARKWEB_SCHEME_OPTION_FETCH_ENABLED = 1 << 6, ARKWEB_SCHEME_OPTION_CODE_CACHE_ENABLED = 1 << 7 } |
custom scheme的配置信息。 |
ArkWeb_ResourceType { MAIN_FRAME = 0, SUB_FRAME = 1, STYLE_SHEET = 2, SCRIPT = 3, IMAGE = 4, FONT_RESOURCE = 5, SUB_RESOURCE = 6, OBJECT = 7, MEDIA = 8, WORKER = 9, SHARED_WORKER = 10, PREFETCH = 11, FAVICON = 12, XHR = 13, PING = 14, SERVICE_WORKER = 15, CSP_REPORT = 16, PLUGIN_RESOURCE = 17, NAVIGATION_PRELOAD_MAIN_FRAME = 19, NAVIGATION_PRELOAD_SUB_FRAME = 20 } |
请求的资源类型。 |
函数
名称 | 描述 |
---|---|
void OH_ArkWebRequestHeaderList_Destroy (ArkWeb_RequestHeaderList *requestHeaderList) | 销毁ArkWeb_RequestHeaderList对象。 |
int32_t OH_ArkWebRequestHeaderList_GetSize (const ArkWeb_RequestHeaderList *requestHeaderList) | 获取请求头列表的大小。 |
void OH_ArkWebRequestHeaderList_GetHeader (const ArkWeb_RequestHeaderList *requestHeaderList, int32_t index, char **key, char **value) | 获取指定的请求头。 |
int32_t OH_ArkWebResourceRequest_SetUserData (ArkWeb_ResourceRequest *resourceRequest, void *userData) | 将一个用户数据设置到ArkWeb_ResourceRequest对象中。 |
void * OH_ArkWebResourceRequest_GetUserData (const ArkWeb_ResourceRequest *resourceRequest) | 从ArkWeb_ResourceRequest获取用户数据。 |
void OH_ArkWebResourceRequest_GetMethod (const ArkWeb_ResourceRequest *resourceRequest, char **method) | 获取请求的method。 |
void OH_ArkWebResourceRequest_GetUrl (const ArkWeb_ResourceRequest *resourceRequest, char **url) | 获取请求的url。 |
void OH_ArkWebResourceRequest_GetHttpBodyStream (const ArkWeb_ResourceRequest *resourceRequest, ArkWeb_HttpBodyStream **httpBodyStream) | 创建一个ArkWeb_HttpBodyStream,用于读取请求的上传数据。 |
void OH_ArkWebResourceRequest_DestroyHttpBodyStream (ArkWeb_HttpBodyStream *httpBodyStream) | 销毁ArkWeb_HttpBodyStream对象。 |
int32_t OH_ArkWebResourceRequest_GetResourceType (const ArkWeb_ResourceRequest *resourceRequest) | 获取请求的资源类型。 |
void OH_ArkWebResourceRequest_GetFrameUrl (const ArkWeb_ResourceRequest *resourceRequest, char **frameUrl) | 获取触发此请求的Frame的URL。 |
int32_t OH_ArkWebHttpBodyStream_SetUserData (ArkWeb_HttpBodyStream *httpBodyStream, void *userData) | 将一个用户数据设置到ArkWeb_HttpBodyStream对象中。 |
void * OH_ArkWebHttpBodyStream_GetUserData (const ArkWeb_HttpBodyStream *httpBodyStream) | 从ArkWeb_HttpBodyStream获取用户数据。 |
int32_t OH_ArkWebHttpBodyStream_SetReadCallback (ArkWeb_HttpBodyStream *httpBodyStream, ArkWeb_HttpBodyStreamReadCallback readCallback) | 为OH_ArkWebHttpBodyStream_Read设置回调函数。 |
int32_t OH_ArkWebHttpBodyStream_Init (ArkWeb_HttpBodyStream *httpBodyStream, ArkWeb_HttpBodyStreamInitCallback initCallback) | 初始化ArkWeb_HttpBodyStream。 |
void OH_ArkWebHttpBodyStream_Read (const ArkWeb_HttpBodyStream *httpBodyStream, uint8_t *buffer, int bufLen) | 将请求的上传数据读取到buffer。 |
uint64_t OH_ArkWebHttpBodyStream_GetSize (const ArkWeb_HttpBodyStream *httpBodyStream) | 获取httpBodyStream的大小。 |
uint64_t OH_ArkWebHttpBodyStream_GetPosition (const ArkWeb_HttpBodyStream *httpBodyStream) | 获取httpBodyStream当前的读取位置。 |
bool OH_ArkWebHttpBodyStream_IsChunked (const ArkWeb_HttpBodyStream *httpBodyStream) | 获取httpBodyStream是否采用分块传输。 |
bool OH_ArkWebHttpBodyStream_IsEof (const ArkWeb_HttpBodyStream *httpBodyStream) | 如果httpBodyStream中的所有数据都已被读取,则返回true。 |
bool OH_ArkWebHttpBodyStream_IsInMemory (const ArkWeb_HttpBodyStream *httpBodyStream) | 如果httpBodyStream中的上传数据完全在内存中,并且所有读取请求都将同步成功,则返回true。 |
int32_t OH_ArkWebResourceRequest_Destroy (const ArkWeb_ResourceRequest *resourceRequest) | 销毁ArkWeb_ResourceRequest对象。 |
void OH_ArkWebResourceRequest_GetReferrer (const ArkWeb_ResourceRequest *resourceRequest, char **referrer) | 获取请求的Referrer。 |
void OH_ArkWebResourceRequest_GetRequestHeaders (const ArkWeb_ResourceRequest *resourceRequest, ArkWeb_RequestHeaderList **requestHeaderList) | 获取请求的请求头列表OH_ArkWeb_RequestHeaderList。 |
bool OH_ArkWebResourceRequest_IsRedirect (const ArkWeb_ResourceRequest *resourceRequest) | 判断这是否是一个重定向请求。 |
bool OH_ArkWebResourceRequest_IsMainFrame (const ArkWeb_ResourceRequest *resourceRequest) | 判断这是否是主框架文档资源的请求。 |
bool OH_ArkWebResourceRequest_HasGesture (const ArkWeb_ResourceRequest *resourceRequest) | 判断这是否是一个由用户手势触发的请求。 |
int32_t OH_ArkWeb_RegisterCustomSchemes (const char *scheme, int32_t option) | 将custom scheme注册到ArkWeb。 |
bool OH_ArkWebServiceWorker_SetSchemeHandler (const char *scheme, ArkWeb_SchemeHandler *schemeHandler) | 为指定scheme设置一个ArkWeb_SchemeHandler以拦截ServiceWorker触发的该scheme类型的请求。 |
bool OH_ArkWeb_SetSchemeHandler (const char *scheme, const char *webTag, ArkWeb_SchemeHandler *schemeHandler) | 为指定scheme设置一个ArkWeb_SchemeHandler以拦截该scheme类型的请求。 |
int32_t OH_ArkWebServiceWorker_ClearSchemeHandlers () | 清除为ServiceWorker注册的SchemeHandler。 |
int32_t OH_ArkWeb_ClearSchemeHandlers (const char *webTag) | 清除为指定web注册的SchemeHandler。 |
void OH_ArkWeb_CreateSchemeHandler (ArkWeb_SchemeHandler **schemeHandler) | 创建一个ArkWeb_SchemeHandler对象。 |
void OH_ArkWeb_DestroySchemeHandler (ArkWeb_SchemeHandler *schemeHandler) | 销毁一个ArkWeb_SchemeHandler对象。 |
int32_t OH_ArkWebSchemeHandler_SetUserData (ArkWeb_SchemeHandler *schemeHandler, void *userData) | 将一个用户数据设置到ArkWeb_SchemeHandler对象中。 |
void * OH_ArkWebSchemeHandler_GetUserData (const ArkWeb_SchemeHandler *schemeHandler) | 从ArkWeb_SchemeHandler获取用户数据。 |
int32_t OH_ArkWebSchemeHandler_SetOnRequestStart (ArkWeb_SchemeHandler *schemeHandler, ArkWeb_OnRequestStart onRequestStart) | 为SchemeHandler设置OnRequestStart回调。 |
int32_t OH_ArkWebSchemeHandler_SetOnRequestStop (ArkWeb_SchemeHandler *schemeHandler, ArkWeb_OnRequestStop onRequestStop) | 为SchemeHandler设置OnRequestStop回调。 |
void OH_ArkWeb_CreateResponse (ArkWeb_Response **response) | 为被拦截的请求创建一个ArkWeb_Response对象。 |
void OH_ArkWeb_DestroyResponse (ArkWeb_Response *response) | 销毁一个ArkWeb_Response对象。 |
int32_t OH_ArkWebResponse_SetUrl (ArkWeb_Response *response, const char *url) | 设置经过重定向或由于HSTS而改变后的解析URL,设置后会触发跳转。 |
void OH_ArkWebResponse_GetUrl (const ArkWeb_Response *response, char **url) | 获取经过重定向或由于HSTS而更改后的解析URL。 |
int32_t OH_ArkWebResponse_SetError (ArkWeb_Response *response, ArkWeb_NetError errorCode) | 给ArkWeb_Response对象设置一个错误码。 |
ArkWeb_NetError OH_ArkWebResponse_GetError (const ArkWeb_Response *response) | 获取ArkWeb_Response的错误码。 |
int32_t OH_ArkWebResponse_SetStatus (ArkWeb_Response *response, int status) | 为ArkWeb_Response对象设置一个HTTP状态码。 |
int OH_ArkWebResponse_GetStatus (const ArkWeb_Response *response) | 获取ArkWeb_Response的HTTP状态码。 |
int32_t OH_ArkWebResponse_SetStatusText (ArkWeb_Response *response, const char *statusText) | 为ArkWeb_Response设置状态文本。 |
void OH_ArkWebResponse_GetStatusText (const ArkWeb_Response *response, char **statusText) | 获取ArkWeb_Response的状态文本。 |
int32_t OH_ArkWebResponse_SetMimeType (ArkWeb_Response *response, const char *mimeType) | 为ArkWeb_Response设置媒体类型。 |
void OH_ArkWebResponse_GetMimeType (const ArkWeb_Response *response, char **mimeType) | 获取ArkWeb_Response的媒体类型。 |
int32_t OH_ArkWebResponse_SetCharset (ArkWeb_Response *response, const char *charset) | 为ArkWeb_Response设置字符集。 |
void OH_ArkWebResponse_GetCharset (const ArkWeb_Response *response, char **charset) | 获取ArkWeb_Response的字符集。 |
int32_t OH_ArkWebResponse_SetHeaderByName (ArkWeb_Response *response, const char *name, const char *value, bool overwrite) | 为ArkWeb_Response设置一个header。 |
void OH_ArkWebResponse_GetHeaderByName (const ArkWeb_Response *response, const char *name, char **value) | 从ArkWeb_Response中获取header。 |
int32_t OH_ArkWebResourceHandler_Destroy (const ArkWeb_ResourceHandler *resourceHandler) | 销毁一个ArkWeb_ResourceHandler对象。 |
int32_t OH_ArkWebResourceHandler_DidReceiveResponse (const ArkWeb_ResourceHandler *resourceHandler, const ArkWeb_Response *response) | 将构造的响应头传递给被拦截的请求。OH_ArkWebResourceHandler_DidReceiveResponse是必须调用的,如果在收到response前发生错误,在response中设置一个error通过该接口通知给内核。 |
int32_t OH_ArkWebResourceHandler_DidReceiveData (const ArkWeb_ResourceHandler *resourceHandler, const uint8_t *buffer, int64_t bufLen) | 将构造的响应体传递给被拦截的请求。 |
int32_t OH_ArkWebResourceHandler_DidFinish (const ArkWeb_ResourceHandler *resourceHandler) | 通知ArkWeb内核被拦截的请求已经完成,并且没有更多的数据可用。 |
int32_t OH_ArkWebResourceHandler_DidFailWithError (const ArkWeb_ResourceHandler *resourceHandler, ArkWeb_NetError errorCode) | 通知ArkWeb内核被拦截请求应该失败。 |
void OH_ArkWeb_ReleaseString (char *string) | 释放由NDK接口创建的字符串 |
void OH_ArkWeb_ReleaseByteArray (uint8_t *byteArray) | 释放由NDK接口创建的字节数组。 |
你可能感兴趣的鸿蒙文章
harmony 鸿蒙ArkWeb_ControllerAPI
harmony 鸿蒙ArkWeb_CookieManagerAPI
harmony 鸿蒙ArkWeb_JavaScriptBridgeData
harmony 鸿蒙ArkWeb_JavaScriptObject
0
赞
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦