harmony 鸿蒙arkweb_scheme_handler.h

  • 2025-06-12
  • 浏览 (4)

arkweb_scheme_handler.h

Overview

Declares the APIs used to intercept requests from ArkWeb.

Library: libohweb.so

File to include:

System capability: SystemCapability.Web.Webview.Core

Since: 12

Related module: Web

Summary

Types

Name Description
typedef enum ArkWeb_CustomSchemeOption ArkWeb_CustomSchemeOption Defines an enum for the custom scheme option.
typedef enum ArkWeb_ResourceType ArkWeb_ResourceType Defines an enum for the resource type.
typedef struct ArkWebSchemeHandler ArkWeb_SchemeHandler Defines a struct for the intercept of a specified scheme request.
typedef struct ArkWebResourceHandler ArkWeb_ResourceHandler Defines a struct for the intercepted URL requests.
typedef struct ArkWebResponse ArkWeb_Response Defines a struct for ArkWeb_Response for the intercepted request.
typedef struct ArkWebResourceRequest ArkWeb_ResourceRequest Defines a struct for resource request. Through OH_ArkWeb_ResourceRequest, you can obtain the URL, method, post data, and other information of the request.
typedef struct ArkWebRequestHeaderList ArkWeb_RequestHeaderList Defines a struct for request header list.
typedef struct ArkWebHttpBodyStream ArkWeb_HttpBodyStream Defines a struct for the request upload data.
typedef void(* ArkWeb_OnRequestStart) (const ArkWeb_SchemeHandler *schemeHandler, ArkWeb_ResourceRequest *resourceRequest, const ArkWeb_ResourceHandler *resourceHandler, bool *intercept) Defines a callback used to start the request on the I/O thread.
typedef void(* ArkWeb_OnRequestStop) (const ArkWeb_SchemeHandler *schemeHandler, const ArkWeb_ResourceRequest *resourceRequest) Defines a callback used to stop the request.
typedef void(* ArkWeb_HttpBodyStreamReadCallback) (const ArkWeb_HttpBodyStream *httpBodyStream, uint8_t *buffer, int bytesRead) Defines a callback used when OH_ArkWebHttpBodyStream_Read is complete.
typedef void(* ArkWeb_HttpBodyStreamInitCallback) (const ArkWeb_HttpBodyStream *httpBodyStream, ArkWeb_NetError result) Defines a callback used when ArkWeb_HttpBodyStream initialization is complete.

Enums

Name Description
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
}
Enumerates the custom scheme options.
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
}
Enumerates the resource types.

Functions

Name Description
void OH_ArkWebRequestHeaderList_Destroy (ArkWeb_RequestHeaderList *requestHeaderList) Destroys an ArkWeb_RequestHeaderList object.
int32_t OH_ArkWebRequestHeaderList_GetSize (const ArkWeb_RequestHeaderList *requestHeaderList) Obtains the size of a request header list.
void OH_ArkWebRequestHeaderList_GetHeader (const ArkWeb_RequestHeaderList *requestHeaderList, int32_t index, char **key, char **value) Obtains a specified request header.
int32_t OH_ArkWebResourceRequest_SetUserData (ArkWeb_ResourceRequest *resourceRequest, void *userData) Sets user data to the ArkWeb_ResourceRequest object.
void * OH_ArkWebResourceRequest_GetUserData (const ArkWeb_ResourceRequest *resourceRequest) Obtains user data from ArkWeb_ResourceRequest.
void OH_ArkWebResourceRequest_GetMethod (const ArkWeb_ResourceRequest *resourceRequest, char **method) Obtains the method of a request.
void OH_ArkWebResourceRequest_GetUrl (const ArkWeb_ResourceRequest *resourceRequest, char **url) Obtains the request URL.
void OH_ArkWebResourceRequest_GetHttpBodyStream (const ArkWeb_ResourceRequest *resourceRequest, ArkWeb_HttpBodyStream **httpBodyStream) Creates an ArkWeb_HttpBodyStream to read the uploaded data of the request.
void OH_ArkWebResourceRequest_DestroyHttpBodyStream (ArkWeb_HttpBodyStream *httpBodyStream) Destroys an ArkWeb_HttpBodyStream object.
int32_t OH_ArkWebResourceRequest_GetResourceType (const ArkWeb_ResourceRequest *resourceRequest) Obtains the resource type of a request.
void OH_ArkWebResourceRequest_GetFrameUrl (const ArkWeb_ResourceRequest *resourceRequest, char **frameUrl) Obtains the URL of the Frame that triggered the request.
int32_t OH_ArkWebHttpBodyStream_SetUserData (ArkWeb_HttpBodyStream *httpBodyStream, void *userData) Sets user data to the ArkWeb_HttpBodyStream object.
void * OH_ArkWebHttpBodyStream_GetUserData (const ArkWeb_HttpBodyStream *httpBodyStream) Obtains user data from ArkWeb_HttpBodyStream.
int32_t OH_ArkWebHttpBodyStream_SetReadCallback (ArkWeb_HttpBodyStream *httpBodyStream, ArkWeb_HttpBodyStreamReadCallback readCallback) Sets a callback for OH_ArkWebHttpBodyStream_Read.
int32_t OH_ArkWebHttpBodyStream_Init (ArkWeb_HttpBodyStream *httpBodyStream, ArkWeb_HttpBodyStreamInitCallback initCallback) Initializes ArkWeb_HttpBodyStream.
void OH_ArkWebHttpBodyStream_Read (const ArkWeb_HttpBodyStream *httpBodyStream, uint8_t *buffer, int bufLen) Exports upload data of the request to the buffer.
uint64_t OH_ArkWebHttpBodyStream_GetSize (const ArkWeb_HttpBodyStream *httpBodyStream) Obtains the size of httpBodyStream.
uint64_t OH_ArkWebHttpBodyStream_GetPosition (const ArkWeb_HttpBodyStream *httpBodyStream) Obtains the position of httpBodyStream.
bool OH_ArkWebHttpBodyStream_IsChunked (const ArkWeb_HttpBodyStream *httpBodyStream) Determines whether httpBodyStream is chunked.
bool OH_ArkWebHttpBodyStream_IsEof (const ArkWeb_HttpBodyStream *httpBodyStream) Returns true if all data in httpBodyStream has been read.
bool OH_ArkWebHttpBodyStream_IsInMemory (const ArkWeb_HttpBodyStream *httpBodyStream) Returns true if all the upload data in httpBodyStream is in memory and all read requests will be synchronized successfully.
int32_t OH_ArkWebResourceRequest_Destroy (const ArkWeb_ResourceRequest *resourceRequest) Destroys an ArkWeb_ResourceRequest object.
void OH_ArkWebResourceRequest_GetReferrer (const ArkWeb_ResourceRequest *resourceRequest, char **referrer) Obtains the referrer of a request.
void OH_ArkWebResourceRequest_GetRequestHeaders (const ArkWeb_ResourceRequest *resourceRequest, ArkWeb_RequestHeaderList **requestHeaderList) Obtains the OH_ArkWeb_RequestHeaderList.
bool OH_ArkWebResourceRequest_IsRedirect (const ArkWeb_ResourceRequest *resourceRequest) Determines whether a request is redirect.
bool OH_ArkWebResourceRequest_IsMainFrame (const ArkWeb_ResourceRequest *resourceRequest) Determines whether a request is from main frame.
bool OH_ArkWebResourceRequest_HasGesture (const ArkWeb_ResourceRequest *resourceRequest) Determines whether a request is triggered by a user gesture.
int32_t OH_ArkWeb_RegisterCustomSchemes (const char *scheme, int32_t option) Registers a custom scheme with the ArkWeb.
bool OH_ArkWebServiceWorker_SetSchemeHandler (const char *scheme, ArkWeb_SchemeHandler *schemeHandler) Sets an ArkWeb_SchemeHandler for a specified scheme to intercept requests of the scheme type triggered by ServiceWorker.
bool OH_ArkWeb_SetSchemeHandler (const char *scheme, const char *webTag, ArkWeb_SchemeHandler *schemeHandler) Sets an ArkWeb_SchemeHandler for a specified scheme to intercept requests of the scheme.
int32_t OH_ArkWebServiceWorker_ClearSchemeHandlers () Clears the SchemeHandler registered for ServiceWorker.
int32_t OH_ArkWeb_ClearSchemeHandlers (const char *webTag) Clears the SchemeHandler registered for the specified web.
void OH_ArkWeb_CreateSchemeHandler (ArkWeb_SchemeHandler **schemeHandler) Creates an ArkWeb_SchemeHandler object.
void OH_ArkWeb_DestroySchemeHandler (ArkWeb_SchemeHandler *schemeHandler) Destroys an ArkWeb_SchemeHandler object.
int32_t OH_ArkWebSchemeHandler_SetUserData (ArkWeb_SchemeHandler *schemeHandler, void *userData) Sets user data to the ArkWeb_SchemeHandler object.
void * OH_ArkWebSchemeHandler_GetUserData (const ArkWeb_SchemeHandler *schemeHandler) Obtains the user data from ArkWeb_SchemeHandler.
int32_t OH_ArkWebSchemeHandler_SetOnRequestStart (ArkWeb_SchemeHandler *schemeHandler, ArkWeb_OnRequestStart onRequestStart) Sets an OnRequestStart callback for SchemeHandler.
int32_t OH_ArkWebSchemeHandler_SetOnRequestStop (ArkWeb_SchemeHandler *schemeHandler, ArkWeb_OnRequestStop onRequestStop) Sets an OnRequestStop callback for SchemeHandler.
void OH_ArkWeb_CreateResponse (ArkWeb_Response **response) Creates an ArkWeb_Response object for the intercepted request.
void OH_ArkWeb_DestroyResponse (ArkWeb_Response *response) Destroys an ArkWeb_Response object.
int32_t OH_ArkWebResponse_SetUrl (ArkWeb_Response *response, const char *url) Sets the parsed URL that is redirected or changed due to HSTS. After the setting, redirection is triggered.
void OH_ArkWebResponse_GetUrl (const ArkWeb_Response *response, char **url) Obtains the parsed URL that has been redirected or changed due to HSTS.
int32_t OH_ArkWebResponse_SetError (ArkWeb_Response *response, ArkWeb_NetError errorCode) Sets an error code for the ArkWeb_Response object.
ArkWeb_NetError OH_ArkWebResponse_GetError (const ArkWeb_Response *response) Obtains the error code of ArkWeb_Response.
int32_t OH_ArkWebResponse_SetStatus (ArkWeb_Response *response, int status) Sets an HTTP status code for the ArkWeb_Response object.
int OH_ArkWebResponse_GetStatus (const ArkWeb_Response *response) Obtains the HTTP status code of ArkWeb_Response.
int32_t OH_ArkWebResponse_SetStatusText (ArkWeb_Response *response, const char *statusText) Sets the status text for ArkWeb_Response.
void OH_ArkWebResponse_GetStatusText (const ArkWeb_Response *response, char **statusText) Obtains the status text of ArkWeb_Response.
int32_t OH_ArkWebResponse_SetMimeType (ArkWeb_Response *response, const char *mimeType) Sets the media type for ArkWeb_Response.
void OH_ArkWebResponse_GetMimeType (const ArkWeb_Response *response, char **mimeType) Obtains the media type of ArkWeb_Response.
int32_t OH_ArkWebResponse_SetCharset (ArkWeb_Response *response, const char *charset) Sets the character set for ArkWeb_Response.
void OH_ArkWebResponse_GetCharset (const ArkWeb_Response *response, char **charset) Obtains the character set of ArkWeb_Response.
int32_t OH_ArkWebResponse_SetHeaderByName (ArkWeb_Response *response, const char *name, const char *value, bool overwrite) Sets a header for ArkWeb_Response.
void OH_ArkWebResponse_GetHeaderByName (const ArkWeb_Response *response, const char *name, char **value) Obtains the header from ArkWeb_Response.
int32_t OH_ArkWebResourceHandler_Destroy (const ArkWeb_ResourceHandler *resourceHandler) Destroys an ArkWeb_ResourceHandler object.
int32_t OH_ArkWebResourceHandler_DidReceiveResponse (const ArkWeb_ResourceHandler *resourceHandler, const ArkWeb_Response *response) Sends a response header to the intercepted request. OH_ArkWebResourceHandler_DidReceiveResponse is mandatory. If an error occurs before the response is received, set an error in the response and notify the kernel by calling this function.
int32_t OH_ArkWebResourceHandler_DidReceiveData (const ArkWeb_ResourceHandler *resourceHandler, const uint8_t *buffer, int64_t bufLen) Sends a response body to the intercepted request.
int32_t OH_ArkWebResourceHandler_DidFinish (const ArkWeb_ResourceHandler *resourceHandler) Notifies the ArkWeb kernel that the intercepted request has been finished and that no more data is available.
int32_t OH_ArkWebResourceHandler_DidFailWithError (const ArkWeb_ResourceHandler *resourceHandler, ArkWeb_NetError errorCode) Notifies the ArkWeb kernel that the intercepted request fails.
void OH_ArkWeb_ReleaseString (char *string) Releases the string created by NDK APIs.
void OH_ArkWeb_ReleaseByteArray (uint8_t *byteArray) Releases the byte array created by NDK APIs.

你可能感兴趣的鸿蒙文章

harmony 鸿蒙ArkWeb API Reference

harmony 鸿蒙ArkWeb_AnyNativeAPI

harmony 鸿蒙ArkWeb_ComponentAPI

harmony 鸿蒙ArkWeb_ControllerAPI

harmony 鸿蒙ArkWeb_CookieManagerAPI

harmony 鸿蒙ArkWeb_JavaScriptBridgeData

harmony 鸿蒙ArkWeb_JavaScriptObject

harmony 鸿蒙ArkWeb_JavaScriptValueAPI

harmony 鸿蒙ArkWeb_ProxyMethod

harmony 鸿蒙ArkWeb_ProxyMethodWithResult

0  赞