arkweb_scheme_handler.h
Overview
Declares the APIs used to intercept requests from ArkWeb.
File to include: <web/arkweb_scheme_handler.h>
Library: libohweb.so
System capability: SystemCapability.Web.Webview.Core
Since: 12
Related module: Web
Example: ArkWebSchemeHandler
Summary
Structs
| Name | typedef Keyword | Description |
|---|---|---|
| ArkWeb_SchemeHandler_ | ArkWeb_SchemeHandler | Defines a handler used to intercept requests of a specified scheme. |
| ArkWeb_ResourceHandler_ | ArkWeb_ResourceHandler | Defines a handler for intercepted URL requests. You can use ArkWeb_ResourceHandler to send custom request headers and bodies. |
| ArkWeb_Response_ | ArkWeb_Response | Defines an ArkWeb_Response for the intercepted request. |
| ArkWeb_ResourceRequest_ | ArkWeb_ResourceRequest | Defines a kernel request. You can use OH_ArkWeb_ResourceRequest to obtain the URL, method, post data, and other information of the request. |
| ArkWeb_RequestHeaderList_ | ArkWeb_RequestHeaderList | Defines a request header list. |
| ArkWeb_HttpBodyStream_ | ArkWeb_HttpBodyStream | Defines the uploaded data of a request. You can use the OH_ArkWebHttpBodyStream_ API to read the uploaded data. |
Enums
| Name | typedef Keyword | Description |
|---|---|---|
| ArkWeb_CustomSchemeOption | ArkWeb_CustomSchemeOption | Enumerates the custom scheme options. |
| ArkWeb_ResourceType | ArkWeb_ResourceType | Enumerates the resource types of the request. The resource types match the corresponding items of ResourceType in Chromium and should not be renumbered. |
Functions
Enum Description
ArkWeb_CustomSchemeOption
enum ArkWeb_CustomSchemeOption
Description
Enumerates the custom scheme options.
System capability: SystemCapability.Web.Webview.Core
Since: 12
| Enumerated Value | Description |
|---|---|
| OH_ARKWEB_SCHEME_OPTION_NONE = 0 | No special behavior or capability is assigned when the custom scheme is registered. |
| ARKWEB_SCHEME_OPTION_STANDARD = 1 << 0 | The scheme is processed as a standard scheme. |
| ARKWEB_SCHEME_OPTION_LOCAL = 1 << 1 | The scheme is processed using the same security rule as the file URL. |
| ARKWEB_SCHEME_OPTION_DISPLAY_ISOLATED = 1 << 2 | The request of the scheme can be initiated only by the page that is loaded using the same scheme. |
| ARKWEB_SCHEME_OPTION_SECURE = 1 << 3 | The scheme is processed using the same security rule as the HTTPS URL. |
| ARKWEB_SCHEME_OPTION_CORS_ENABLED = 1 << 4 | The scheme can send CORS requests. In most cases, this value should be set when ARKWEB_SCHEME_OPTION_STANDARD is set. |
| ARKWEB_SCHEME_OPTION_CSP_BYPASSING = 1 << 5 | The scheme can bypass the Content Security Policy (CSP) check. |
| ARKWEB_SCHEME_OPTION_FETCH_ENABLED = 1 << 6 | The FETCH API request of the scheme can be initiated. |
| ARKWEB_SCHEME_OPTION_CODE_CACHE_ENABLED = 1 << 7 | The JS resources of the scheme support code cache generation. |
ArkWeb_ResourceType
enum ArkWeb_ResourceType
Description
Enumerates the resource types of the request. The resource types match the corresponding items of ResourceType in Chromium and should not be renumbered.
System capability: SystemCapability.Web.Webview.Core
Since: 12
| Enumerated Value | Description |
|---|---|
| MAIN_FRAME = 0 | Main frame. |
| SUB_FRAME = 1 | Frame or iframe. |
| STYLE_SHEET = 2 | Cascading Style Sheets (CSS). |
| SCRIPT = 3 | External script. |
| IMAGE = 4 | Image (JPG, GIF, PNG, or other format). |
| FONT_RESOURCE = 5 | Font. |
| SUB_RESOURCE = 6 | Other sub-resource. If the type is unknown, the default type is used. |
| OBJECT = 7 | The Object (or embed) tag of the plug-in, or the resource requested by the plug-in. |
| MEDIA = 8 | Media resource. |
| WORKER = 9 | Main resource of the dedicated worker thread. |
| SHARED_WORKER = 10 | Main resource of a shared worker thread. |
| PREFETCH = 11 | Explicit prefetch request. |
| FAVICON = 12 | Website icon. |
| XHR = 13 | XMLHttpRequest. |
| PING = 14 | Ping request of /sendBeacon. |
| SERVICE_WORKER = 15 | Main resource of a service worker. |
| CSP_REPORT = 16 | Report of Content Security Policy violation. |
| PLUGIN_RESOURCE = 17 | Resource requested by the plug-in. |
| NAVIGATION_PRELOAD_MAIN_FRAME = 19 | Main frame redirection request that triggers service worker preloading. |
| NAVIGATION_PRELOAD_SUB_FRAME = 20 | Subframe redirection request that triggers service worker preloading. |
Function Description
ArkWeb_OnRequestStart()
typedef void (*ArkWeb_OnRequestStart)(const ArkWeb_SchemeHandler* schemeHandler,ArkWeb_ResourceRequest* resourceRequest,const ArkWeb_ResourceHandler* resourceHandler,bool* intercept)
Description
Called when a request starts. This callback is used on the IO thread.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_SchemeHandler* schemeHandler | ArkWeb_SchemeHandler. |
| ArkWeb_ResourceRequest* resourceRequest | Object used to obtain the request information. |
| const ArkWeb_ResourceHandler* resourceHandler | ArkWeb_ResourceHandler of the request. If intercept is set to false, this parameter should not be used. |
| bool* intercept | Whether to intercept the request. If the value is true, the request will be intercepted. Otherwise, the request will not be intercepted. |
ArkWeb_OnRequestStop()
typedef void (*ArkWeb_OnRequestStop)(const ArkWeb_SchemeHandler* schemeHandler,const ArkWeb_ResourceRequest* resourceRequest)
Description
Called when the request stops. This callback is used on the IO thread.
You can use ArkWeb_ResourceRequest_Destroy to destroy the resourceRequest and use ArkWeb_ResourceHandler_Destroy to destroy the ArkWeb_ResourceHandler received in ArkWeb_OnRequestStart.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_SchemeHandler* schemeHandler | ArkWeb_SchemeHandler. |
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
ArkWeb_HttpBodyStreamReadCallback()
typedef void (*ArkWeb_HttpBodyStreamReadCallback)(const ArkWeb_HttpBodyStream* httpBodyStream,uint8_t* buffer,int bytesRead)
Description
Called when OH_ArkWebHttpBodyStream_Read is complete.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
| uint8_t* buffer | Buffer for receiving data. |
| int bytesRead | Callback used when OH_ArkWebHttpBodyStream_Read is complete. If the value of bytesRead is greater than 0, the buffer is filled with data of the bytesRead size. The caller can read data from the buffer. If OH_ArkWebHttpBodyStream_IsEOF is false, the caller can continue to read the data left. |
ArkWeb_HttpBodyStreamAsyncReadCallback()
typedef void (*ArkWeb_HttpBodyStreamAsyncReadCallback)(const ArkWeb_HttpBodyStream *httpBodyStream,uint8_t *buffer,int bytesRead)
Description
Called when OH_ArkWebHttpBodyStream_AsyncRead is complete.
System capability: SystemCapability.Web.Webview.Core
Since: 20
Parameters
| Name | Description |
|---|---|
| const ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
| uint8_t* buffer | Buffer for receiving data. |
| int bytesRead | Byte count value of the asynchronous read operation result. If the value of bytesRead is greater than 0, the buffer is filled with data of the bytesRead size. You can read data from the buffer. If OH_ArkWebHttpBodyStream_IsEOF is false, you can continue to read the data left. |
ArkWeb_HttpBodyStreamInitCallback()
typedef void (*ArkWeb_HttpBodyStreamInitCallback)(const ArkWeb_HttpBodyStream* httpBodyStream, ArkWeb_NetError result)
Description
Called when ArkWeb_HttpBodyStream initialization is complete.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
| ArkWeb_NetError result | Operation result. If the operation is successful, ARKWEB_NET_OK is returned. Otherwise, see arkweb_net_error_list.h. |
OH_ArkWebRequestHeaderList_Destroy()
void OH_ArkWebRequestHeaderList_Destroy(ArkWeb_RequestHeaderList* requestHeaderList)
Description
Destroys an ArkWeb_RequestHeaderList object.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_RequestHeaderList* requestHeaderList | The ArkWeb_RequestHeaderList to be destroyed. |
OH_ArkWebRequestHeaderList_GetSize()
int32_t OH_ArkWebRequestHeaderList_GetSize(const ArkWeb_RequestHeaderList* requestHeaderList)
Description
Obtains the size of a request header list.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_RequestHeaderList* requestHeaderList | Request header list. |
Returns
| Type | Description |
|---|---|
| int32_t | Size of the request header. If requestHeaderList is invalid, the value is -1. |
OH_ArkWebRequestHeaderList_GetHeader()
void OH_ArkWebRequestHeaderList_GetHeader(const ArkWeb_RequestHeaderList* requestHeaderList,int32_t index,char** key,char** value)
Description
Obtains a specified request header.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_RequestHeaderList* requestHeaderList | Request header list. |
| int32_t index | Index of the request header. |
| char** key | Key of the request header. You should use the OH_ArkWeb_ReleaseString function to release this string. |
| char** value | Value of the request header. You should use the OH_ArkWeb_ReleaseString function to release this string. |
OH_ArkWebResourceRequest_SetUserData()
int32_t OH_ArkWebResourceRequest_SetUserData(ArkWeb_ResourceRequest* resourceRequest, void* userData)
Description
Sets user data to the ArkWeb_ResourceRequest object.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
| void* userData | User data to be set. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResourceRequest_GetUserData()
void* OH_ArkWebResourceRequest_GetUserData(const ArkWeb_ResourceRequest* resourceRequest)
Description
Obtains user data from ArkWeb_ResourceRequest.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
Returns
| Type | Description |
|---|---|
| void* | User data. |
OH_ArkWebResourceRequest_GetMethod()
void OH_ArkWebResourceRequest_GetMethod(const ArkWeb_ResourceRequest* resourceRequest, char** method)
Description
Obtains the method of a request.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
| char** method | HTTP request method. This function allocates memory for the method string. You should use OH_ArkWeb_ReleaseString to release the string. |
OH_ArkWebResourceRequest_GetUrl()
void OH_ArkWebResourceRequest_GetUrl(const ArkWeb_ResourceRequest* resourceRequest, char** url)
Description
Obtains the URL of a request.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
| char** url | URL of a request. This function allocates memory for the url string. You should release the string using OH_ArkWeb_ReleaseString. |
OH_ArkWebResourceRequest_GetHttpBodyStream()
void OH_ArkWebResourceRequest_GetHttpBodyStream(const ArkWeb_ResourceRequest* resourceRequest,ArkWeb_HttpBodyStream** httpBodyStream)
Description
Creates an ArkWeb_HttpBodyStream to read the uploaded data of the request.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
| ArkWeb_HttpBodyStream** httpBodyStream | Uploaded data of the request. This function allocates memory for httpBodyStream. You should use OH_ArkWebResourceRequest_DestroyHttpBodyStream to release httpBodyStream. |
OH_ArkWebResourceRequest_DestroyHttpBodyStream()
void OH_ArkWebResourceRequest_DestroyHttpBodyStream(ArkWeb_HttpBodyStream* httpBodyStream)
Description
Destroys an ArkWeb_HttpBodyStream object.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_HttpBodyStream* httpBodyStream | The httpBodyStream to be destroyed. |
OH_ArkWebResourceRequest_GetResourceType()
int32_t OH_ArkWebResourceRequest_GetResourceType(const ArkWeb_ResourceRequest* resourceRequest)
Description
Obtains the resource type of a request.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
Returns
| Type | Description |
|---|---|
| int32_t | Resource type of the request. If resourceRequest is invalid, the value is -1. |
OH_ArkWebResourceRequest_GetFrameUrl()
void OH_ArkWebResourceRequest_GetFrameUrl(const ArkWeb_ResourceRequest* resourceRequest, char** frameUrl)
Description
Obtains the URL of the frame that triggers this request.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
| char** frameUrl | URL of the frame that triggers the request. This function allocates memory for the URL string. You should release the string using OH_ArkWeb_ReleaseString. |
OH_ArkWebHttpBodyStream_SetUserData()
int32_t OH_ArkWebHttpBodyStream_SetUserData(ArkWeb_HttpBodyStream* httpBodyStream, void* userData)
Description
Sets user data to the ArkWeb_HttpBodyStream object.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
| void* userData | User data to be set. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebHttpBodyStream_GetUserData()
void* OH_ArkWebHttpBodyStream_GetUserData(const ArkWeb_HttpBodyStream* httpBodyStream)
Description
Obtains user data from ArkWeb_HttpBodyStream.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
Returns
| Type | Description |
|---|---|
| void* | User data. |
OH_ArkWebHttpBodyStream_SetReadCallback()
int32_t OH_ArkWebHttpBodyStream_SetReadCallback(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamReadCallback readCallback)
Description
Sets a callback for OH_ArkWebHttpBodyStream_Read. The result of OH_ArkWebHttpBodyStream_Read is notified to the caller through readCallback,
which will run in the same thread as OH_ArkWebHttpBodyStream_Read.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
| ArkWeb_HttpBodyStreamReadCallback readCallback | Callback of OH_ArkWebHttpBodyStream_Read. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebHttpBodyStream_SetAsyncReadCallback()
int32_t OH_ArkWebHttpBodyStream_SetAsyncReadCallback(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamAsyncReadCallback readCallback)
Description
Sets a callback for OH_ArkWebHttpBodyStream_AsyncRead. The result of OH_ArkWebHttpBodyStream_AsyncRead is notified to the caller through readCallback,
which runs in the ArkWeb worker thread.
System capability: SystemCapability.Web.Webview.Core
Since: 20
Parameters
| Name | Description |
|---|---|
| ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
| ArkWeb_HttpBodyStreamAsyncReadCallback readCallback | Callback of OH_ArkWebHttpBodyStream_AsyncRead. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebHttpBodyStream_Init()
int32_t OH_ArkWebHttpBodyStream_Init(ArkWeb_HttpBodyStream* httpBodyStream,ArkWeb_HttpBodyStreamInitCallback initCallback)
Description
Initializes ArkWeb_HttpBodyStream. This function must be called before any other function is called. This API needs to be called in the I/O thread.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
| ArkWeb_HttpBodyStreamInitCallback initCallback | Callback of the initialization. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebHttpBodyStream_Read()
void OH_ArkWebHttpBodyStream_Read(const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen)
Description
Exports the uploaded data of a request to the buffer. The buffer size must be greater than the value of bufLen. The data from the worker thread is exported to the buffer. Therefore, before the callback returns the data, the buffer should not be used in other threads to avoid concurrency problems.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
| uint8_t* buffer | Buffer for receiving data. |
| int bufLen | Size of the byte to be read. |
OH_ArkWebHttpBodyStream_AsyncRead()
void OH_ArkWebHttpBodyStream_AsyncRead(const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen)
Description
Exports the uploaded data of a request to the buffer. The buffer size must be greater than bufLen. The data from the worker thread is exported to the buffer. Therefore, before the callback returns the data, the buffer should not be used in other threads to avoid concurrency problems.
System capability: SystemCapability.Web.Webview.Core
Since: 20
Parameters
| Name | Description |
|---|---|
| const ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
| uint8_t* buffer | Buffer for receiving data. |
| int bufLen | Size of the byte to be read. |
OH_ArkWebHttpBodyStream_GetSize()
uint64_t OH_ArkWebHttpBodyStream_GetSize(const ArkWeb_HttpBodyStream* httpBodyStream)
Description
Obtains the size of httpBodyStream. When data is chunked or httpBodyStream is invalid, 0 is always returned.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
Returns
| Type | Description |
|---|---|
| uint64_t | Size of httpBodyStream. |
OH_ArkWebHttpBodyStream_GetPosition()
uint64_t OH_ArkWebHttpBodyStream_GetPosition(const ArkWeb_HttpBodyStream* httpBodyStream)
Description
Obtains the position of httpBodyStream.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
Returns
| Type | Description |
|---|---|
| uint64_t | Position of httpBodyStream. If httpBodyStream is invalid, the position value is 0. |
OH_ArkWebHttpBodyStream_IsChunked()
bool OH_ArkWebHttpBodyStream_IsChunked(const ArkWeb_HttpBodyStream* httpBodyStream)
Description
Determines whether httpBodyStream is chunked.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
Returns
| Type | Description |
|---|---|
| bool | true is returned if httpBodyStream is chunked. Otherwise, false is returned. |
OH_ArkWebHttpBodyStream_IsEof()
bool OH_ArkWebHttpBodyStream_IsEof(const ArkWeb_HttpBodyStream* httpBodyStream)
Description
Determines whether all data in httpBodyStream has been read. true is returned if all data in httpBodyStream has been read. false is returned before the chunked httpBodyStream is read for the first time.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
Returns
| Type | Description |
|---|---|
| bool | true is returned if all data has been read. Otherwise, false is returned. |
OH_ArkWebHttpBodyStream_IsInMemory()
bool OH_ArkWebHttpBodyStream_IsInMemory(const ArkWeb_HttpBodyStream* httpBodyStream)
Description
Determines whether all the uploaded data in httpBodyStream is in memory and all read requests are synchronized successfully. If yes, true is returned. false is returned if the data is chunked.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_HttpBodyStream* httpBodyStream | ArkWeb_HttpBodyStream. |
Returns
| Type | Description |
|---|---|
| bool | true is returned if all the uploaded data is stored in the memory. Otherwise, false is returned. |
OH_ArkWebResourceRequest_Destroy()
int32_t OH_ArkWebResourceRequest_Destroy(const ArkWeb_ResourceRequest* resourceRequest)
Description
Destroys an ArkWeb_ResourceRequest object.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResourceRequest_GetReferrer()
void OH_ArkWebResourceRequest_GetReferrer(const ArkWeb_ResourceRequest* resourceRequest, char** referrer)
Description
Obtains the referrer of a request.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
| char** referrer | referrer of a request. This function allocates memory for the referrer string. You should use OH_ArkWeb_ReleaseString to release the string. |
OH_ArkWebResourceRequest_GetRequestHeaders()
void OH_ArkWebResourceRequest_GetRequestHeaders(const ArkWeb_ResourceRequest* resourceRequest,ArkWeb_RequestHeaderList** requestHeaderList)
Description
Obtains an OH_ArkWeb_RequestHeaderList.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
| ArkWeb_RequestHeaderList** requestHeaderList | List of request headers. |
OH_ArkWebResourceRequest_IsRedirect()
bool OH_ArkWebResourceRequest_IsRedirect(const ArkWeb_ResourceRequest* resourceRequest)
Description
Determines whether a request is redirected.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
Returns
| Type | Description |
|---|---|
| bool | true is returned if this request is redirected. Otherwise, false is returned. |
OH_ArkWebResourceRequest_IsMainFrame()
bool OH_ArkWebResourceRequest_IsMainFrame(const ArkWeb_ResourceRequest* resourceRequest)
Description
Determines whether a request is from main frame.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
Returns
| Type | Description |
|---|---|
| bool | true is returned if this request is from the main framework. Otherwise, false is returned. |
OH_ArkWebResourceRequest_HasGesture()
bool OH_ArkWebResourceRequest_HasGesture(const ArkWeb_ResourceRequest* resourceRequest)
Description
Determines whether a request is triggered by a user gesture.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceRequest* resourceRequest | ArkWeb_ResourceRequest. |
Returns
| Type | Description |
|---|---|
| bool | true is returned if this request is triggered by a user gesture. Otherwise, false is returned. |
OH_ArkWeb_RegisterCustomSchemes()
int32_t OH_ArkWeb_RegisterCustomSchemes(const char* scheme, int32_t option)
Description
Registers a custom scheme with ArkWeb. This function should not be called for built-in HTTP, HTTPS, FILE, FTP, ABOUT, and DATA protocols. This function should be called on the main thread before kernel initialization.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const char* scheme | Scheme to be registered. |
| int32_t option | Scheme options. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned if the operation is successful. 17100100 is returned if an unknown error occurs. 17100101 is returned if the parameter is invalid. 17100102 is returned if the scheme configuration fails to be registered, which must be registered before the Web component is created. |
OH_ArkWebServiceWorker_SetSchemeHandler()
bool OH_ArkWebServiceWorker_SetSchemeHandler(const char* scheme, ArkWeb_SchemeHandler* schemeHandler)
Description
Sets an ArkWeb_SchemeHandler for a specified scheme to intercept requests of the scheme type triggered by ServiceWorker. SchemeHandler should be set after BrowserContext is created.
You can use WebviewController.initializeWebEngine to initialize BrowserContext without creating the Web component.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const char* scheme | Scheme to be intercepted. |
| ArkWeb_SchemeHandler* schemeHandler | ArkWeb_SchemeHandler of the scheme. Only requests triggered by ServiceWorker are notified through this schemeHandler. |
Returns
| Type | Description |
|---|---|
| bool | true is returned if the SchemeHandler is successfully set for the specified scheme. Otherwise, false is returned. |
OH_ArkWeb_SetSchemeHandler()
bool OH_ArkWeb_SetSchemeHandler(const char* scheme, const char* webTag, ArkWeb_SchemeHandler* schemeHandler)
Description
Sets an ArkWeb_SchemeHandler to intercept requests of a specified scheme type. SchemeHandler should be set after BrowserContext is created.
You can use WebviewController.initializeWebEngine to initialize BrowserContext without creating the Web component.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const char* scheme | Scheme to be intercepted. |
| const char* webTag | Tag that uniquely identifies a Web component. Ensure that it is unique. |
| ArkWeb_SchemeHandler* schemeHandler | ArkWeb_SchemeHandler of the scheme. Only requests triggered from the specified web are notified through this SchemeHandler. |
Returns
| Type | Description |
|---|---|
| bool | true is returned if the SchemeHandler is successfully set for the specified scheme. Otherwise, false is returned. |
OH_ArkWebServiceWorker_ClearSchemeHandlers()
int32_t OH_ArkWebServiceWorker_ClearSchemeHandlers()
Description
Clears the SchemeHandler registered for ServiceWorker.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned if the operation is successful. |
OH_ArkWeb_ClearSchemeHandlers()
int32_t OH_ArkWeb_ClearSchemeHandlers(const char* webTag)
Description
Clears the SchemeHandler registered for the specified Web component.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const char* webTag | Tag that uniquely identifies a Web component. Ensure that it is unique. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWeb_CreateSchemeHandler()
void OH_ArkWeb_CreateSchemeHandler(ArkWeb_SchemeHandler** schemeHandler)
Description
Creates an ArkWeb_SchemeHandler object.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_SchemeHandler** schemeHandler | A created ArkWeb_SchemeHandler. Use OH_ArkWeb_DestroyschemeHandler to destroy it when it is not required. |
OH_ArkWeb_DestroySchemeHandler()
void OH_ArkWeb_DestroySchemeHandler(ArkWeb_SchemeHandler* schemeHandler)
Description
Destroys an ArkWeb_SchemeHandler object.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_SchemeHandler* schemeHandler | The ArkWeb_SchemeHandler to be destroyed. |
OH_ArkWebSchemeHandler_SetUserData()
int32_t OH_ArkWebSchemeHandler_SetUserData(ArkWeb_SchemeHandler* schemeHandler, void* userData)
Description
Sets user data to the ArkWeb_SchemeHandler object.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_SchemeHandler* schemeHandler | ArkWeb_SchemeHandler. |
| void* userData | User data to be set. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebSchemeHandler_GetUserData()
void* OH_ArkWebSchemeHandler_GetUserData(const ArkWeb_SchemeHandler* schemeHandler)
Description
Obtains the user data from ArkWeb_SchemeHandler.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_SchemeHandler* schemeHandler | ArkWeb_SchemeHandler. |
Returns
| Type | Description |
|---|---|
| void* | User data. |
OH_ArkWebSchemeHandler_SetOnRequestStart()
int32_t OH_ArkWebSchemeHandler_SetOnRequestStart(ArkWeb_SchemeHandler* schemeHandler,ArkWeb_OnRequestStart onRequestStart)
Description
Sets an OnRequestStart callback for SchemeHandler.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_SchemeHandler* schemeHandler | SchemeHandler of the scheme. |
| ArkWeb_OnRequestStart onRequestStart | The callback function OnRequestStart. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebSchemeHandler_SetOnRequestStop()
int32_t OH_ArkWebSchemeHandler_SetOnRequestStop(ArkWeb_SchemeHandler* schemeHandler,ArkWeb_OnRequestStop onRequestStop)
Description
Sets an OnRequestStop callback for SchemeHandler.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_SchemeHandler* schemeHandler | SchemeHandler of the scheme. |
| ArkWeb_OnRequestStop onRequestStop | The callback function OnRequestStop. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWeb_CreateResponse()
void OH_ArkWeb_CreateResponse(ArkWeb_Response** response)
Description
Creates an ArkWeb_Response object for the intercepted request.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_Response** response | A created ArkWeb_Response. Use OH_ArkWeb_DestroyResponse to destroy it when it is not required. |
OH_ArkWeb_DestroyResponse()
void OH_ArkWeb_DestroyResponse(ArkWeb_Response* response)
Description
Destroys an ArkWeb_Response object.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_Response* response | The ArkWeb_Response to be destroyed. |
OH_ArkWebResponse_SetUrl()
int32_t OH_ArkWebResponse_SetUrl(ArkWeb_Response* response, const char* url)
Description
Sets a parsed URL that has been redirected or changed due to HSTS. After the setting, redirection is triggered.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_Response* response | ArkWeb_Response. |
| const char* url | Parsed URL. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResponse_GetUrl()
void OH_ArkWebResponse_GetUrl(const ArkWeb_Response* response, char** url)
Description
Obtains the parsed URL that has been redirected or changed due to HSTS.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_Response* response | ArkWeb_Response. |
| char** url | Parsed URL. |
OH_ArkWebResponse_SetError()
int32_t OH_ArkWebResponse_SetError(ArkWeb_Response* response, ArkWeb_NetError errorCode)
Description
Sets an error code for the ArkWeb_Response object.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_Response* response | ArkWeb_Response. |
| ArkWeb_NetError errorCode | Error code of the failed request. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResponse_GetError()
ArkWeb_NetError OH_ArkWebResponse_GetError(const ArkWeb_Response* response)
Description
Obtains the error code of ArkWeb_Response.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_Response* response | ArkWeb_Response. |
Returns
| Type | Description |
|---|---|
| ArkWeb_NetError | Error code of ArkWeb_Response. |
OH_ArkWebResponse_SetStatus()
int32_t OH_ArkWebResponse_SetStatus(ArkWeb_Response* response, int status)
Description
Sets an HTTP status code for ArkWeb_Response.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_Response* response | ArkWeb_Response. |
| int status | HTTP status code of the request. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResponse_GetStatus()
int OH_ArkWebResponse_GetStatus(const ArkWeb_Response* response)
Description
Obtains the HTTP status code of ArkWeb_Response.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_Response* response | ArkWeb_Response. |
Returns
| Type | Description |
|---|---|
| int | HTTP status code of ArkWeb_Response. If ArkWeb_Response is invalid, the value is -1. |
OH_ArkWebResponse_SetStatusText()
int32_t OH_ArkWebResponse_SetStatusText(ArkWeb_Response* response, const char* statusText)
Description
Sets a status text for ArkWeb_Response.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_Response* response | ArkWeb_Response. |
| const char* statusText | Status text of the request. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResponse_GetStatusText()
void OH_ArkWebResponse_GetStatusText(const ArkWeb_Response* response, char** statusText)
Description
Obtains the status text of ArkWeb_Response.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_Response* response | ArkWeb_Response. |
| char** statusText | Status text of ArkWeb_Response. This function allocates memory for the statusText string. You need to release the string using OH_ArkWeb_ReleaseString. |
OH_ArkWebResponse_SetMimeType()
int32_t OH_ArkWebResponse_SetMimeType(ArkWeb_Response* response, const char* mimeType)
Description
Sets a mime type for ArkWeb_Response.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_Response* response | ArkWeb_Response. |
| const char* mimeType | Mime type of the request. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResponse_GetMimeType()
void OH_ArkWebResponse_GetMimeType(const ArkWeb_Response* response, char** mimeType)
Description
Obtains the mime type of ArkWeb_Response.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_Response* response | ArkWeb_Response. |
| char** mimeType | Mime type of ArkWeb_Response. This function allocates memory for the mimeType string. You need to release the string using OH_ArkWeb_ReleaseString. |
OH_ArkWebResponse_SetCharset()
int32_t OH_ArkWebResponse_SetCharset(ArkWeb_Response* response, const char* charset)
Description
Sets a character set for ArkWeb_Response.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_Response* response | ArkWeb_Response. |
| const char* charset | Character set of the request. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResponse_GetCharset()
void OH_ArkWebResponse_GetCharset(const ArkWeb_Response* response, char** charset)
Description
Obtains the character set of ArkWeb_Response.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_Response* response | ArkWeb_Response. |
| char** charset | Character set of ArkWeb_Response. This function allocates memory for the charset string. You need to release the string using OH_ArkWeb_ReleaseString. |
OH_ArkWebResponse_SetHeaderByName()
int32_t OH_ArkWebResponse_SetHeaderByName(ArkWeb_Response* response,const char* name,const char* value,bool overwrite)
Description
Sets a header for ArkWeb_Response.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| ArkWeb_Response* response | ArkWeb_Response. |
| const char* name | Name of the header. |
| const char* value | Value of the header. |
| bool overwrite | Whether to overwrite the existing header. The value true means to overwrite the existing header, and false means the opposite. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResponse_GetHeaderByName()
void OH_ArkWebResponse_GetHeaderByName(const ArkWeb_Response* response, const char* name, char** value)
Description
Obtains the header from ArkWeb_Response.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_Response* response | ArkWeb_Response. |
| const char* name | Name of the header. |
| char** value | Value of the header. This function allocates memory for the **value **string. You need to release the string using OH_ArkWeb_ReleaseString. |
OH_ArkWebResourceHandler_Destroy()
int32_t OH_ArkWebResourceHandler_Destroy(const ArkWeb_ResourceHandler* resourceHandler)
Description
Destroys an ArkWeb_ResourceHandler object.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceHandler* resourceHandler | ArkWeb_ResourceHandler. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResourceHandler_DidReceiveResponse()
int32_t OH_ArkWebResourceHandler_DidReceiveResponse(const ArkWeb_ResourceHandler* resourceHandler,const ArkWeb_Response* response)
Description
Sends a response header to the intercepted request.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceHandler* resourceHandler | ArkWeb_ResourceHandler of the request. |
| const ArkWeb_Response* response | ArkWeb_Response of the intercepted request. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResourceHandler_DidReceiveData()
int32_t OH_ArkWebResourceHandler_DidReceiveData(const ArkWeb_ResourceHandler* resourceHandler,const uint8_t* buffer,int64_t bufLen)
Description
Sends a response body to the intercepted request.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceHandler* resourceHandler | ArkWeb_ResourceHandler of the request. |
| const uint8_t* buffer | Buffer data to be sent. |
| int64_t bufLen | Buffer size. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResourceHandler_DidFinish()
int32_t OH_ArkWebResourceHandler_DidFinish(const ArkWeb_ResourceHandler* resourceHandler)
Description
Notifies the ArkWeb kernel that the intercepted request has been finished and that no more data is available.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceHandler* resourceHandler | ArkWeb_ResourceHandler of the request. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResourceHandler_DidFailWithError()
int32_t OH_ArkWebResourceHandler_DidFailWithError(const ArkWeb_ResourceHandler* resourceHandler,ArkWeb_NetError errorCode)
Description
Notifies the ArkWeb kernel that the intercepted request fails.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceHandler* resourceHandler | Handler for intercepted URL requests. You can use ArkWeb_ResourceHandler to send custom request headers and bodies. |
| ArkWeb_NetError errorCode | Error code of the request. For details, see arkweb_net_error_list.h. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWebResourceHandler_DidFailWithErrorV2()
int32_t OH_ArkWebResourceHandler_DidFailWithErrorV2(const ArkWeb_ResourceHandler* resourceHandler,ArkWeb_NetError errorCode,bool completeIfNoResponse)
Description
Notifies the ArkWeb kernel that the intercepted request fails. Compared with the OH_ArkWebResourceHandler_DidFailWithError API, the completeIfNoResponse parameter is added. With this parameter set to true, if OH_ArkWebResourceHandler_DidReceiveResponse has not been called, a response is automatically generated to complete the network request and the network error code is -104. With this parameter set to false, the system waits for the application to call OH_ArkWebResourceHandler_DidReceiveResponse and pass the response.
System capability: SystemCapability.Web.Webview.Core
Since: 20
Parameters
| Name | Description |
|---|---|
| const ArkWeb_ResourceHandler* resourceHandler | Handler for intercepted URL requests. You can use ArkWeb_ResourceHandler to send custom request headers and bodies. |
| ArkWeb_NetError errorCode | Error code of the request. For details, see arkweb_net_error_list.h. |
| bool completeIfNoResponse | Whether the network request is complete when OH_ArkWebResourceHandler_DidFailWithErrorV2 is called if OH_ArkWebResourceHandler_DidReceiveResponse is not called before. If the value is true and OH_ArkWebResourceHandler_DidReceiveResponse is not called before, a response is automatically generated to complete the network request, and the network error code is -104. If the value is false, the system waits for the application to call OH_ArkWebResourceHandler_DidReceiveResponse and pass the response. |
Returns
| Type | Description |
|---|---|
| int32_t | 0 is returned when the operation is successful; 17100101 is returned when the parameter is invalid. |
OH_ArkWeb_ReleaseString()
void OH_ArkWeb_ReleaseString(char* string)
Description
Releases the string created by NDK APIs.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| char* string | String to be released. |
OH_ArkWeb_ReleaseByteArray()
void OH_ArkWeb_ReleaseByteArray(uint8_t* byteArray)
Description
Releases the byte array created by NDK APIs.
System capability: SystemCapability.Web.Webview.Core
Since: 12
Parameters
| Name | Description |
|---|---|
| uint8_t* byteArray | Byte array to be released. |