1# Web 2 3 4## 概述 5 6为ArkWeb NDK接口发生异常提供错误码。 7 8提供注入对象和执行JavaScript代码的API接口。 9 10提供用于拦截ArkWeb请求的API。 11 12为ArkWeb网络协议栈提供错误码。 13 14提供ArkWeb在Native侧的能力,如网页刷新、执行JavaScript、注册回调等。 15 16更多详细介绍请参考[应用侧与前端页面的相互调用(C/C++)](../../web/arkweb-ndk-jsbridge.md)、[建立应用侧与前端页面数据通道(C/C++)](../../web/arkweb-ndk-page-data-channel.md)和[拦截Web组件发起的网络请求](../../web/web-scheme-handler.md)。 17 18**起始版本:** 12 19 20 21## 汇总 22 23 24### 文件 25 26| 名称 | 描述 | 27| -------- | -------- | 28| [arkweb_error_code.h](arkweb__error__code_8h.md) | 声明ArkWeb NDK接口异常错误码。 | 29| [arkweb_interface.h](arkweb__interface_8h.md) | 提供ArkWeb在Native侧获取API的接口,及基础Native API类型。 | 30| [arkweb_net_error_list.h](arkweb__net__error__list_8h.md) | 声明ArkWeb网络协议栈错误码。 | 31| [arkweb_scheme_handler.h](arkweb__scheme__handler_8h.md) | 声明用于拦截来自ArkWeb的请求的API。 | 32| [arkweb_type.h](arkweb__type_8h.md) | 提供ArkWeb在Native侧的公共类型定义。 | 33| [native_interface_arkweb.h](native__interface__arkweb_8h.md) | 声明API接口供开发者使用注入对象和执行JavaScript代码等功能。 | 34 35 36### 结构体 37 38| 名称 | 描述 | 39| -------- | -------- | 40| struct [ArkWeb_AnyNativeAPI](_ark_web___any_native_a_p_i.md) | 定义基础Native API类型。 | 41| struct [ArkWeb_JavaScriptBridgeData](_ark_web___java_script_bridge_data.md) | 定义JavaScript Bridge数据的基础结构。 | 42| struct [ArkWeb_JavaScriptObject](_ark_web___java_script_object.md) | 注入的JavaScript结构体。 | 43| struct [ArkWeb_ProxyMethod](_ark_web___proxy_method.md) | 注入的Proxy方法通用结构体。 | 44| struct [ArkWeb_ProxyMethodWithResult](_ark_web___proxy_method_with_result.md) | 注入的Proxy方法通用结构体。 | 45| struct [ArkWeb_ProxyObject](_ark_web___proxy_object.md) | 注入的Proxy对象通用结构体。 | 46| struct [ArkWeb_ProxyObjectWithResult](_ark_web___proxy_object_with_result.md) | 注入的Proxy对象通用结构体。 | 47| struct [ArkWeb_ControllerAPI](_ark_web___controller_a_p_i.md) | Controller相关的Native API结构体。 在调用接口前建议通过ARKWEB_MEMBER_MISSING校验该函数结构体是否有对应函数指针,避免SDK与设备ROM不匹配导致crash问题。 | 48| struct [ArkWeb_ComponentAPI](_ark_web___component_a_p_i.md) | Component相关的Native API结构体。 | 49| struct [ArkWeb_WebMessagePortAPI](_ark_web___web_message_port_a_p_i.md) | Post Message相关的Native API结构体。 在调用接口前建议通过ARKWEB_MEMBER_MISSING校验该函数结构体是否有对应函数指针,避免SDK与设备ROM不匹配导致crash问题。 | 50| struct [ArkWeb_WebMessageAPI](_ark_web___web_message_a_p_i.md) | Post Message数据相关的Native API结构体。 在调用接口前建议通过ARKWEB_MEMBER_MISSING校验该函数结构体是否有对应函数指针,避免SDK与设备ROM不匹配导致crash问题。 | 51| struct [ArkWeb_CookieManagerAPI](_ark_web___cookie_manager_a_p_i.md) | 定义了ArkWeb的CookieManager接口。 在调用接口之前,建议使用ARKWEB_MEMBER_MISSING检查函数结构体是否有对应的函数指针,避免SDK与设备ROM不匹配导致崩溃。 | 52| struct [ArkWeb_JavaScriptValueAPI](_ark_web___java_script_value_a_p_i.md) | 定义了ArkWeb的JavaScriptValue接口。 在调用接口之前,建议使用ARKWEB_MEMBER_MISSING检查函数结构体是否有对应的函数指针,避免SDK与设备ROM不匹配导致崩溃。 | 53 54 55### 宏定义 56 57| 名称 | 描述 | 58| -------- | -------- | 59| [ARKWEB_MEMBER_EXISTS](#arkweb_member_exists)(s, f) ((intptr_t) & ((s)->f) - (intptr_t)(s) + sizeof((s)->f) <= \*reinterpret_cast<size_t\*>(s)) | 检查结构体中是否存在该成员变量。 | 60| [ARKWEB_MEMBER_MISSING](#arkweb_member_missing)(s, f) (\(s, f) \|\| !((s)->f)) | 当前结构体存在该成员变量则返回false,否则返回true。 | 61 62 63### 类型定义 64 65| 名称 | 描述 | 66| -------- | -------- | 67| typedef enum [ArkWeb_ErrorCode](#arkweb_errorcode) [ArkWeb_ErrorCode](#arkweb_errorcode) | 定义ArkWeb NDK接口异常错误码。 | 68| typedef enum [ArkWeb_NetError](#arkweb_neterror) [ArkWeb_NetError](#arkweb_neterror) | 定义ArkWeb网络协议栈错误码。 | 69| typedef enum [ArkWeb_CustomSchemeOption](#arkweb_customschemeoption) [ArkWeb_CustomSchemeOption](#arkweb_customschemeoption) | custom scheme的配置信息。 | 70| typedef enum [ArkWeb_ResourceType](#arkweb_resourcetype) [ArkWeb_ResourceType](#arkweb_resourcetype) | 请求的资源类型。 | 71| typedef struct ArkWeb_SchemeHandler_ [ArkWeb_SchemeHandler](#arkweb_schemehandler) | 该类用于拦截指定scheme的请求。 | 72| typedef struct ArkWeb_ResourceHandler_ [ArkWeb_ResourceHandler](#arkweb_resourcehandler) | 用于被拦截的URL请求。 | 73| typedef struct ArkWeb_Response_ [ArkWeb_Response](#arkweb_response) | 为被拦截的请求构造一个ArkWeb_Response。 | 74| typedef struct ArkWeb_ResourceRequest_ [ArkWeb_ResourceRequest](#arkweb_resourcerequest) | 对应内核的一个请求,可以通过OH_ArkWeb_ResourceRequest获取请求的URL、method、post data以及其他信息。 | 75| typedef struct ArkWeb_RequestHeaderList_ [ArkWeb_RequestHeaderList](#arkweb_requestheaderlist) | 请求头列表。 | 76| typedef struct ArkWeb_HttpBodyStream_ [ArkWeb_HttpBodyStream](#arkweb_httpbodystream) | 请求的上传数据。 | 77| typedef void(\* [ArkWeb_OnRequestStart](#arkweb_onrequeststart)) (const [ArkWeb_SchemeHandler](#arkweb_schemehandler) \*schemeHandler, [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest, const [ArkWeb_ResourceHandler](#arkweb_resourcehandler) \*resourceHandler, bool \*intercept) | 请求开始的回调,这将在IO线程上被调用。 | 78| typedef void(\* [ArkWeb_OnRequestStop](#arkweb_onrequeststop)) (const [ArkWeb_SchemeHandler](#arkweb_schemehandler) \*schemeHandler, const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest) | 请求完成时的回调函数。 | 79| typedef void(\* [ArkWeb_HttpBodyStreamReadCallback](#arkweb_httpbodystreamreadcallback)) (const [ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream, uint8_t \*buffer, int bytesRead) | 当OH_ArkWebHttpBodyStream_Read读取操作完成时的回调函数。 | 80| typedef void(\* [ArkWeb_HttpBodyStreamInitCallback](#arkweb_httpbodystreaminitcallback)) (const [ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream, [ArkWeb_NetError](#arkweb_neterror) result) | ArkWeb_HttpBodyStream初始化操作完成时回调函数。 | 81| typedef enum [ArkWeb_WebMessageType](#arkweb_webmessagetype) [ArkWeb_WebMessageType](#arkweb_webmessagetype) | Post Message数据类型。 | 82| typedef enum [ArkWeb_JavaScriptValueType](#arkweb_javascriptvaluetype) [ArkWeb_JavaScriptValueType](#arkweb_javascriptvaluetype) | JavaScript数据类型。 | 83| typedef struct ArkWeb_WebMessage \* [ArkWeb_WebMessagePtr](#arkweb_webmessageptr) | Post Message数据结构体指针。 | 84| typedef struct ArkWeb_JavaScriptValue \* [ArkWeb_JavaScriptValuePtr](#arkweb_javascriptvalueptr) | JavaScript数据结构体指针。 | 85| typedef void(\* [ArkWeb_OnJavaScriptCallback](#arkweb_onjavascriptcallback)) (const char \*webTag, const [ArkWeb_JavaScriptBridgeData](_ark_web___java_script_bridge_data.md) \*data, void \*userData) | 注入的JavaScript执行完成的回调。 | 86| typedef void(\* [ArkWeb_OnJavaScriptProxyCallback](#arkweb_onjavascriptproxycallback)) (const char \*webTag, const [ArkWeb_JavaScriptBridgeData](_ark_web___java_script_bridge_data.md) \*dataArray, size_t arraySize, void \*userData) | Proxy方法被执行的回调。 | 87| typedef [ArkWeb_JavaScriptValuePtr](#arkweb_javascriptvalueptr)(\* [ArkWeb_OnJavaScriptProxyCallbackWithResult](#arkweb_onjavascriptproxycallbackwithresult)) (const char \*webTag, const [ArkWeb_JavaScriptBridgeData](_ark_web___java_script_bridge_data.md) \*dataArray, size_t arraySize, void \*userData) | Proxy方法被执行的回调。 | 88| typedef void(\* [ArkWeb_OnComponentCallback](#arkweb_oncomponentcallback)) (const char \*webTag, void \*userData) | 组件事件通知相关的通用回调。 | 89| typedef struct ArkWeb_WebMessagePort \* [ArkWeb_WebMessagePortPtr](#arkweb_webmessageportptr) | Post Message端口结构体指针。 | 90| typedef void(\* [ArkWeb_OnMessageEventHandler](#arkweb_onmessageeventhandler)) (const char \*webTag, const [ArkWeb_WebMessagePortPtr](#arkweb_webmessageportptr) port, const [ArkWeb_WebMessagePtr](#arkweb_webmessageptr) message, void \*userData) | 处理HTML发送过来的Post Message数据。 | 91| typedef void(\* [NativeArkWeb_OnJavaScriptCallback](#nativearkweb_onjavascriptcallback)) (const char \*) | 定义执行JavaScript代码后返回结果的回调函数的类型。 | 92| typedef char \*(\* [NativeArkWeb_OnJavaScriptProxyCallback](#nativearkweb_onjavascriptproxycallback)) (const char \*\*argv, int32_t argc) | 定义注入对象的回调函数的类型。 | 93| typedef void(\* [NativeArkWeb_OnValidCallback](#nativearkweb_onvalidcallback)) (const char \*) | 定义Web组件可用时的回调函数的类型。 | 94| typedef void(\* [NativeArkWeb_OnDestroyCallback](#nativearkweb_ondestroycallback)) (const char \*) | 定义Web组件销毁时的回调函数的类型。 | 95| typedef void(\* [ArkWeb_OnScrollCallback](#arkweb_onscrollcallback)) (const char \*webTag, void \*userData, double x, double y) | 定义Web组件滚动时的回调函数的类型。 | 96 97### 枚举 98 99| 名称 | 描述 | 100| -------- | -------- | 101| [ArkWeb_ErrorCode](#arkweb_errorcode) {<br/>ARKWEB_SUCCESS = 0, ARKWEB_INIT_ERROR = 17100001, ARKWEB_ERROR_UNKNOWN = 17100100, ARKWEB_INVALID_PARAM = 17100101,<br/>ARKWEB_SCHEME_REGISTER_FAILED = 17100102, ARKWEB_INVALID_URL = 17100103, ARKWEB_INVALID_COOKIE_VALUE = 17100104<br/>} | 定义ArkWeb NDK接口异常错误码。 | 102| [ArkWeb_NativeAPIVariantKind](#arkweb_nativeapivariantkind) {<br/>ARKWEB_NATIVE_COMPONENT, ARKWEB_NATIVE_CONTROLLER, ARKWEB_NATIVE_WEB_MESSAGE_PORT, ARKWEB_NATIVE_WEB_MESSAGE,<br/>ARKWEB_NATIVE_COOKIE_MANAGER, ARKWEB_NATIVE_JAVASCRIPT_VALUE<br/>} | 定义Native API的类型枚举。 | 103| [ArkWeb_NetError](#arkweb_neterror) {<br/>ARKWEB_NET_OK = 0, ARKWEB_ERR_IO_PENDING = -1, ARKWEB_ERR_FAILED = -2, ARKWEB_ERR_ABORTED = -3,<br/>ARKWEB_ERR_INVALID_ARGUMENT = -4, ARKWEB_ERR_INVALID_HANDLE = -5, ARKWEB_ERR_FILE_NOT_FOUND = -6, ARKWEB_ERR_TIMED_OUT = -7,<br/>ARKWEB_ERR_FILE_TOO_LARGE = -8, ARKWEB_ERR_UNEXPECTED = -9, ARKWEB_ERR_ACCESS_DENIED = -10, ARKWEB_ERR_NOT_IMPLEMENTED = -11,<br/>ARKWEB_ERR_INSUFFICIENT_RESOURCES = -12, ARKWEB_ERR_OUT_OF_MEMORY = -13, ARKWEB_ERR_UPLOAD_FILE_CHANGED = -14, ARKWEB_ERR_SOCKET_NOT_CONNECTED = -15,<br/>ARKWEB_ERR_FILE_EXISTS = -16, ARKWEB_ERR_FILE_PATH_TOO_LONG = -17, ARKWEB_ERR_FILE_NO_SPACE = -18, ARKWEB_ERR_FILE_VIRUS_INFECTED = -19,<br/>ARKWEB_ERR_BLOCKED_BY_CLIENT = -20, ARKWEB_ERR_NETWORK_CHANGED = -21, ARKWEB_ERR_BLOCKED_BY_ADMINISTRATOR = -22, ARKWEB_ERR_SOCKET_CONNECTED = -23,<br/>ARKWEB_ERR_UPLOAD_STREAM_REWIND_NOT_SUPPORTED = -25, ARKWEB_ERR_CONTEXT_SHUT_DOWN = -26, ARKWEB_ERR_BLOCKED_BY_RESPONSE = -27, ARKWEB_ERR_CLEARTEXT_NOT_PERMITTED = -29,<br/>ARKWEB_ERR_BLOCKED_BY_CSP = -30, ARKWEB_ERR_H2_OR_QUIC_REQUIRED = -31, ARKWEB_ERR_BLOCKED_BY_ORB = -32, ARKWEB_ERR_CONNECTION_CLOSED = -100,<br/>ARKWEB_ERR_CONNECTION_RESET = -101, ARKWEB_ERR_CONNECTION_REFUSED = -102, ARKWEB_ERR_CONNECTION_ABORTED = -103, ARKWEB_ERR_CONNECTION_FAILED = -104,<br/>ARKWEB_ERR_NAME_NOT_RESOLVED = -105, ARKWEB_ERR_INTERNET_DISCONNECTED = -106, ARKWEB_ERR_SSL_PROTOCOL_ERROR = -107, ARKWEB_ERR_ADDRESS_INVALID = -108,<br/>ARKWEB_ERR_ADDRESS_UNREACHABLE = -109, ARKWEB_ERR_SSL_CLIENT_AUTH_CERT_NEEDED = -110, ARKWEB_ERR_TUNNEL_CONNECTION_FAILED = -111, ARKWEB_ERR_NO_SSL_VERSIONS_ENABLED = -112,<br/>ARKWEB_ERR_SSL_VERSION_OR_CIPHER_MISMATCH = -113, ARKWEB_ERR_SSL_RENEGOTIATION_REQUESTED = -114, ARKWEB_ERR_PROXY_AUTH_UNSUPPORTED = -115, ARKWEB_ERR_BAD_SSL_CLIENT_AUTH_CERT = -117,<br/>ARKWEB_ERR_CONNECTION_TIMED_OUT = -118, ARKWEB_ERR_HOST_RESOLVER_QUEUE_TOO_LARGE = -119, ARKWEB_ERR_SOCKS_CONNECTION_FAILED = -120, ARKWEB_ERR_SOCKS_CONNECTION_HOST_UNREACHABLE = -121,<br/>ARKWEB_ERR_ALPN_NEGOTIATION_FAILED = -122, ARKWEB_ERR_SSL_NO_RENEGOTIATION = -123, ARKWEB_ERR_WINSOCK_UNEXPECTED_WRITTEN_BYTES = -124, ARKWEB_ERR_SSL_DECOMPRESSION_FAILURE_ALERT = -125,<br/>ARKWEB_ERR_SSL_BAD_RECORD_MAC_ALERT = -126, ARKWEB_ERR_PROXY_AUTH_REQUESTED = -127, ARKWEB_ERR_PROXY_CONNECTION_FAILED = -130, ARKWEB_ERR_MANDATORY_PROXY_CONFIGURATION_FAILED = -131,<br/>ARKWEB_ERR_PRECONNECT_MAX_SOCKET_LIMIT = -133, ARKWEB_ERR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED = -134, ARKWEB_ERR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY = -135, ARKWEB_ERR_PROXY_CERTIFICATE_INVALID = -136,<br/>ARKWEB_ERR_NAME_RESOLUTION_FAILED = -137, ARKWEB_ERR_NETWORK_ACCESS_DENIED = -138, ARKWEB_ERR_TEMPORARILY_THROTTLED = -139, ARKWEB_ERR_HTTPS_PROXY_TUNNEL_RESPONSE_REDIRECT = -140,<br/>ARKWEB_ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED = -141, ARKWEB_ERR_MSG_TOO_BIG = -142, ARKWEB_ERR_WS_PROTOCOL_ERROR = -145, ARKWEB_ERR_ADDRESS_IN_USE = -147,<br/>ARKWEB_ERR_SSL_HANDSHAKE_NOT_COMPLETED = -148, ARKWEB_ERR_SSL_BAD_PEER_PUBLIC_KEY = -149, ARKWEB_ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN = -150, ARKWEB_ERR_CLIENT_AUTH_CERT_TYPE_UNSUPPORTED = -151,<br/>ARKWEB_ERR_SSL_DECRYPT_ERROR_ALERT = -153, ARKWEB_ERR_WS_THROTTLE_QUEUE_TOO_LARGE = -154, ARKWEB_ERR_SSL_SERVER_CERT_CHANGED = -156, ARKWEB_ERR_SSL_UNRECOGNIZED_NAME_ALERT = -159,<br/>ARKWEB_ERR_SOCKET_SET_RECEIVE_BUFFER_SIZE_ERROR = -160, ARKWEB_ERR_SOCKET_SET_SEND_BUFFER_SIZE_ERROR = -161, ARKWEB_ERR_SOCKET_RECEIVE_BUFFER_SIZE_UNCHANGEABLE = -162, ARKWEB_ERR_SOCKET_SEND_BUFFER_SIZE_UNCHANGEABLE = -163,<br/>ARKWEB_ERR_SSL_CLIENT_AUTH_CERT_BAD_FORMAT = -164, ARKWEB_ERR_ICANN_NAME_COLLISION = -166, ARKWEB_ERR_SSL_SERVER_CERT_BAD_FORMAT = -167, ARKWEB_ERR_CT_STH_PARSING_FAILED = -168,<br/>ARKWEB_ERR_CT_STH_INCOMPLETE = -169, ARKWEB_ERR_UNABLE_TO_REUSE_CONNECTION_FOR_PROXY_AUTH = -170, ARKWEB_ERR_CT_CONSISTENCY_PROOF_PARSING_FAILED = -171, ARKWEB_ERR_SSL_OBSOLETE_CIPHER = -172,<br/>ARKWEB_ERR_WS_UPGRADE = -173, ARKWEB_ERR_READ_IF_READY_NOT_IMPLEMENTED = -174, ARKWEB_ERR_NO_BUFFER_SPACE = -176, ARKWEB_ERR_SSL_CLIENT_AUTH_NO_COMMON_ALGORITHMS = -177,<br/>ARKWEB_ERR_EARLY_DATA_REJECTED = -178, ARKWEB_ERR_WRONG_VERSION_ON_EARLY_DATA = -179, ARKWEB_ERR_TLS13_DOWNGRADE_DETECTED = -180, ARKWEB_ERR_SSL_KEY_USAGE_INCOMPATIBLE = -181,<br/>ARKWEB_ERR_INVALID_ECH_CONFIG_LIST = -182, ARKWEB_ERR_ECH_NOT_NEGOTIATED = -183, ARKWEB_ERR_ECH_FALLBACK_CERTIFICATE_INVALID = -184, ARKWEB_ERR_CERT_COMMON_NAME_INVALID = -200,<br/>ARKWEB_ERR_CERT_DATE_INVALID = -201, ARKWEB_ERR_CERT_AUTHORITY_INVALID = -202, ARKWEB_ERR_CERT_CONTAINS_ERRORS = -203, ARKWEB_ERR_CERT_NO_REVOCATION_MECHANISM = -204,<br/>ARKWEB_ERR_CERT_UNABLE_TO_CHECK_REVOCATION = -205, ARKWEB_ERR_CERT_REVOKED = -206, ARKWEB_ERR_CERT_INVALID = -207, ARKWEB_ERR_CERT_WEAK_SIGNATURE_ALGORITHM = -208,<br/>ARKWEB_ERR_CERT_NON_UNIQUE_NAME = -210, ARKWEB_ERR_CERT_WEAK_KEY = -211, ARKWEB_ERR_CERT_NAME_CONSTRAINT_VIOLATION = -212, ARKWEB_ERR_CERT_VALIDITY_TOO_LONG = -213,<br/>ARKWEB_ERR_CERTIFICATE_TRANSPARENCY_REQUIRED = -214, ARKWEB_ERR_CERT_SYMANTEC_LEGACY = -215, ARKWEB_ERR_CERT_KNOWN_INTERCEPTION_BLOCKED = -217, ARKWEB_ERR_SSL_OBSOLETE_VERSION_OR_CIPHER = -218,<br/>ARKWEB_ERR_CERT_END = -219, ARKWEB_ERR_INVALID_URL = -300, ARKWEB_ERR_DISALLOWED_URL_SCHEME = -301, ARKWEB_ERR_UNKNOWN_URL_SCHEME = -302,<br/>ARKWEB_ERR_INVALID_REDIRECT = -303, ARKWEB_ERR_TOO_MANY_REDIRECTS = -310, ARKWEB_ERR_UNSAFE_REDIRECT = -311, ARKWEB_ERR_UNSAFE_PORT = -312,<br/>ARKWEB_ERR_INVALID_RESPONSE = -320, ARKWEB_ERR_INVALID_CHUNKED_ENCODING = -321, ARKWEB_ERR_METHOD_UNSUPPORTED = -322, ARKWEB_ERR_UNEXPECTED_PROXY_AUTH = -323,<br/>ARKWEB_ERR_EMPTY_RESPONSE = -324, ARKWEB_ERR_RESPONSE_HEADERS_TOO_BIG = -325, ARKWEB_ERR_PAC_SCRIPT_FAILED = -327, ARKWEB_ERR_REQUEST_RANGE_NOT_SATISFIABLE = -328,<br/>ARKWEB_ERR_MALFORMED_IDENTITY = -329, ARKWEB_ERR_CONTENT_DECODING_FAILED = -330, ARKWEB_ERR_NETWORK_IO_SUSPENDED = -331, ARKWEB_ERR_SYN_REPLY_NOT_RECEIVED = -332,<br/>ARKWEB_ERR_ENCODING_CONVERSION_FAILED = -333, ARKWEB_ERR_UNRECOGNIZED_FTP_DIRECTORY_LISTING_FORMAT = -334, ARKWEB_ERR_NO_SUPPORTED_PROXIES = -336, ARKWEB_ERR_HTTP2_PROTOCOL_ERROR = -337,<br/>ARKWEB_ERR_INVALID_AUTH_CREDENTIALS = -338, ARKWEB_ERR_UNSUPPORTED_AUTH_SCHEME = -339, ARKWEB_ERR_ENCODING_DETECTION_FAILED = -340, ARKWEB_ERR_MISSING_AUTH_CREDENTIALS = -341,<br/>ARKWEB_ERR_UNEXPECTED_SECURITY_LIBRARY_STATUS = -342, ARKWEB_ERR_MISCONFIGURED_AUTH_ENVIRONMENT = -343, ARKWEB_ERR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS = -344, ARKWEB_ERR_RESPONSE_BODY_TOO_BIG_TO_DRAIN = -345,<br/>ARKWEB_ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH = -346, ARKWEB_ERR_INCOMPLETE_HTTP2_HEADERS = -347, ARKWEB_ERR_PAC_NOT_IN_DHCP = -348, ARKWEB_ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION = -349,<br/>ARKWEB_ERR_RESPONSE_HEADERS_MULTIPLE_LOCATION = -350, ARKWEB_ERR_HTTP2_SERVER_REFUSED_STREAM = -351, ARKWEB_ERR_HTTP2_PING_FAILED = -352, ARKWEB_ERR_CONTENT_LENGTH_MISMATCH = -354,<br/>ARKWEB_ERR_INCOMPLETE_CHUNKED_ENCODING = -355, ARKWEB_ERR_QUIC_PROTOCOL_ERROR = -356, ARKWEB_ERR_RESPONSE_HEADERS_TRUNCATED = -357, ARKWEB_ERR_QUIC_HANDSHAKE_FAILED = -358,<br/>ARKWEB_ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY = -360, ARKWEB_ERR_HTTP2_FLOW_CONTROL_ERROR = -361, ARKWEB_ERR_HTTP2_FRAME_SIZE_ERROR = -362, ARKWEB_ERR_HTTP2_COMPRESSION_ERROR = -363,<br/>ARKWEB_ERR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION = -364, ARKWEB_ERR_HTTP_1_1_REQUIRED = -365, ARKWEB_ERR_PROXY_HTTP_1_1_REQUIRED = -366, ARKWEB_ERR_PAC_SCRIPT_TERMINATED = -367,<br/>ARKWEB_ERR_INVALID_HTTP_RESPONSE = -370, ARKWEB_ERR_CONTENT_DECODING_INIT_FAILED = -371, ARKWEB_ERR_HTTP2_RST_STREAM_NO_ERROR_RECEIVED = -372, ARKWEB_ERR_HTTP2_PUSHED_STREAM_NOT_AVAILABLE = -373,<br/>ARKWEB_ERR_HTTP2_CLAIMED_PUSHED_STREAM_RESET_BY_SERVER = -374, ARKWEB_ERR_TOO_MANY_RETRIES = -375, ARKWEB_ERR_HTTP2_STREAM_CLOSED = -376, ARKWEB_ERR_HTTP2_CLIENT_REFUSED_STREAM = -377,<br/>ARKWEB_ERR_HTTP2_PUSHED_RESPONSE_DOES_NOT_MATCH = -378, ARKWEB_ERR_HTTP_RESPONSE_CODE_FAILURE = -379, ARKWEB_ERR_QUIC_UNKNOWN_CERT_ROOT = -380, ARKWEB_ERR_QUIC_GOAWAY_REQUEST_CAN_BE_RETRIED = -381,<br/>ARKWEB_ERR_TOO_MANY_ACCEPT_CH_RESTARTS = -382, ARKWEB_ERR_INCONSISTENT_IP_ADDRESS_SPACE = -383, ARKWEB_ERR_CACHED_IP_ADDRESS_SPACE_BLOCKED_BY_LOCAL_NETWORK_ACCESS_POLICY = -384, ARKWEB_ERR_CACHE_MISS = -400,<br/>ARKWEB_ERR_CACHE_READ_FAILURE = -401, ARKWEB_ERR_CACHE_WRITE_FAILURE = -402, ARKWEB_ERR_CACHE_OPERATION_UNSUPPORTED = -403, ARKWEB_ERR_CACHE_OPEN_FAILURE = -404,<br/>ARKWEB_ERR_CACHE_CREATE_FAILURE = -405, ARKWEB_ERR_CACHE_RACE = -406, ARKWEB_ERR_CACHE_CHECKSUM_READ_FAILURE = -407, ARKWEB_ERR_CACHE_CHECKSUM_MISMATCH = -408,<br/>ARKWEB_ERR_CACHE_LOCK_TIMEOUT = -409, ARKWEB_ERR_CACHE_AUTH_FAILURE_AFTER_READ = -410, ARKWEB_ERR_CACHE_ENTRY_NOT_SUITABLE = -411, ARKWEB_ERR_CACHE_DOOM_FAILURE = -412,<br/>ARKWEB_ERR_CACHE_OPEN_OR_CREATE_FAILURE = -413, ARKWEB_ERR_INSECURE_RESPONSE = -501, ARKWEB_ERR_NO_PRIVATE_KEY_FOR_CERT = -502, ARKWEB_ERR_ADD_USER_CERT_FAILED = -503,<br/>ARKWEB_ERR_INVALID_SIGNED_EXCHANGE = -504, ARKWEB_ERR_INVALID_WEB_BUNDLE = -505, ARKWEB_ERR_TRUST_TOKEN_OPERATION_FAILED = -506, ARKWEB_ERR_TRUST_TOKEN_OPERATION_SUCCESS_WITHOUT_SENDING_REQUEST = -507,<br/>ARKWEB_ERR_FTP_FAILED = -601, ARKWEB_ERR_FTP_SERVICE_UNAVAILABLE = -602, ARKWEB_ERR_FTP_TRANSFER_ABORTED = -603, ARKWEB_ERR_FTP_FILE_BUSY = -604,<br/>ARKWEB_ERR_FTP_SYNTAX_ERROR = -605, ARKWEB_ERR_FTP_COMMAND_UNSUPPORTED = -606, ARKWEB_ERR_FTP_BAD_COMMAND_SEQUENCE = -607, ARKWEB_ERR_PKCS12_IMPORT_BAD_PASSWORD = -701,<br/>ARKWEB_ERR_PKCS12_IMPORT_FAILED = -702, ARKWEB_ERR_IMPORT_CA_CERT_NOT_CA = -703, ARKWEB_ERR_IMPORT_CERT_ALREADY_EXISTS = -704, ARKWEB_ERR_IMPORT_CA_CERT_FAILED = -705,<br/>ARKWEB_ERR_IMPORT_SERVER_CERT_FAILED = -706, ARKWEB_ERR_PKCS12_IMPORT_INVALID_MAC = -707, ARKWEB_ERR_PKCS12_IMPORT_INVALID_FILE = -708, ARKWEB_ERR_PKCS12_IMPORT_UNSUPPORTED = -709,<br/>ARKWEB_ERR_KEY_GENERATION_FAILED = -710, ARKWEB_ERR_PRIVATE_KEY_EXPORT_FAILED = -712, ARKWEB_ERR_SELF_SIGNED_CERT_GENERATION_FAILED = -713, ARKWEB_ERR_CERT_DATABASE_CHANGED = -714,<br/>ARKWEB_ERR_CERT_VERIFIER_CHANGED = -716, ARKWEB_ERR_DNS_MALFORMED_RESPONSE = -800, ARKWEB_ERR_DNS_SERVER_REQUIRES_TCP = -801, ARKWEB_ERR_DNS_SERVER_FAILED = -802,<br/>ARKWEB_ERR_DNS_TIMED_OUT = -803, ARKWEB_ERR_DNS_CACHE_MISS = -804, ARKWEB_ERR_DNS_SEARCH_EMPTY = -805, ARKWEB_ERR_DNS_SORT_ERROR = -806,<br/>ARKWEB_ERR_DNS_SECURE_RESOLVER_HOSTNAME_RESOLUTION_FAILED = -808, ARKWEB_ERR_DNS_NAME_HTTPS_ONLY = -809, ARKWEB_ERR_DNS_REQUEST_CANCELED = -810, ARKWEB_ERR_DNS_NO_MATCHING_SUPPORTED_ALPN = -811<br/>} | 定义ArkWeb网络协议栈错误码。 | 104| [ArkWeb_CustomSchemeOption](#arkweb_customschemeoption) {<br/>**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,<br/>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,<br/>ARKWEB_SCHEME_OPTION_CODE_CACHE_ENABLED = 1 << 7<br/>} | custom scheme的配置信息。 | 105| [ArkWeb_ResourceType](#arkweb_resourcetype) {<br/>MAIN_FRAME = 0, SUB_FRAME = 1, STYLE_SHEET = 2, SCRIPT = 3,<br/>IMAGE = 4, FONT_RESOURCE = 5, SUB_RESOURCE = 6, OBJECT = 7,<br/>MEDIA = 8, WORKER = 9, SHARED_WORKER = 10, PREFETCH = 11,<br/>FAVICON = 12, XHR = 13, PING = 14, SERVICE_WORKER = 15,<br/>CSP_REPORT = 16, PLUGIN_RESOURCE = 17, NAVIGATION_PRELOAD_MAIN_FRAME = 19, NAVIGATION_PRELOAD_SUB_FRAME = 20<br/>} | 请求的资源类型。 | 106| [ArkWeb_WebMessageType](#arkweb_webmessagetype) { ARKWEB_NONE = 0, ARKWEB_STRING, ARKWEB_BUFFER } | Post Message数据类型。 | 107| [ArkWeb_JavaScriptValueType](#arkweb_javascriptvaluetype) { ARKWEB_JAVASCRIPT_NONE = 0, ARKWEB_JAVASCRIPT_STRING, ARKWEB_JAVASCRIPT_BOOL } | JavaScript数据类型。 | 108 109 110### 函数 111 112| 名称 | 描述 | 113| -------- | -------- | 114| [ArkWeb_AnyNativeAPI](_ark_web___any_native_a_p_i.md) \* [OH_ArkWeb_GetNativeAPI](#oh_arkweb_getnativeapi) ([ArkWeb_NativeAPIVariantKind](#arkweb_nativeapivariantkind) type) | 根据传入的API类型,获取对应的Native API结构体。 | 115| void [OH_ArkWebRequestHeaderList_Destroy](#oh_arkwebrequestheaderlist_destroy) ([ArkWeb_RequestHeaderList](#arkweb_requestheaderlist) \*requestHeaderList) | 销毁ArkWeb_RequestHeaderList对象。 | 116| int32_t [OH_ArkWebRequestHeaderList_GetSize](#oh_arkwebrequestheaderlist_getsize) (const [ArkWeb_RequestHeaderList](#arkweb_requestheaderlist) \*requestHeaderList) | 获取请求头列表的大小。 | 117| void [OH_ArkWebRequestHeaderList_GetHeader](#oh_arkwebrequestheaderlist_getheader) (const [ArkWeb_RequestHeaderList](#arkweb_requestheaderlist) \*requestHeaderList, int32_t index, char \*\*key, char \*\*value) | 获取指定的请求头。 | 118| int32_t [OH_ArkWebResourceRequest_SetUserData](#oh_arkwebresourcerequest_setuserdata) ([ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest, void \*userData) | 将一个用户数据设置到ArkWeb_ResourceRequest对象中。 | 119| void \* [OH_ArkWebResourceRequest_GetUserData](#oh_arkwebresourcerequest_getuserdata) (const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest) | 从ArkWeb_ResourceRequest获取用户数据。 | 120| void [OH_ArkWebResourceRequest_GetMethod](#oh_arkwebresourcerequest_getmethod) (const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest, char \*\*method) | 获取请求的method。 | 121| void [OH_ArkWebResourceRequest_GetUrl](#oh_arkwebresourcerequest_geturl) (const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest, char \*\*url) | 获取请求的url。 | 122| void [OH_ArkWebResourceRequest_GetHttpBodyStream](#oh_arkwebresourcerequest_gethttpbodystream) (const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest, [ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*\*httpBodyStream) | 创建一个ArkWeb_HttpBodyStream,用于读取请求的上传数据。 | 123| void [OH_ArkWebResourceRequest_DestroyHttpBodyStream](#oh_arkwebresourcerequest_destroyhttpbodystream) ([ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream) | 销毁ArkWeb_HttpBodyStream对象。 | 124| int32_t [OH_ArkWebResourceRequest_GetResourceType](#oh_arkwebresourcerequest_getresourcetype) (const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest) | 获取请求的资源类型。 | 125| void [OH_ArkWebResourceRequest_GetFrameUrl](#oh_arkwebresourcerequest_getframeurl) (const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest, char \*\*frameUrl) | 获取触发此请求的Frame的URL。 | 126| int32_t [OH_ArkWebHttpBodyStream_SetUserData](#oh_arkwebhttpbodystream_setuserdata) ([ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream, void \*userData) | 将一个用户数据设置到ArkWeb_HttpBodyStream对象中。 | 127| void \* [OH_ArkWebHttpBodyStream_GetUserData](#oh_arkwebhttpbodystream_getuserdata) (const [ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream) | 从ArkWeb_HttpBodyStream获取用户数据。 | 128| int32_t [OH_ArkWebHttpBodyStream_SetReadCallback](#oh_arkwebhttpbodystream_setreadcallback) ([ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream, [ArkWeb_HttpBodyStreamReadCallback](#arkweb_httpbodystreamreadcallback) readCallback) | 为OH_ArkWebHttpBodyStream_Read设置回调函数。 | 129| int32_t [OH_ArkWebHttpBodyStream_Init](#oh_arkwebhttpbodystream_init) ([ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream, [ArkWeb_HttpBodyStreamInitCallback](#arkweb_httpbodystreaminitcallback) initCallback) | 初始化ArkWeb_HttpBodyStream。 | 130| void [OH_ArkWebHttpBodyStream_Read](#oh_arkwebhttpbodystream_read) (const [ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream, uint8_t \*buffer, int bufLen) | 将请求的上传数据读取到buffer。 | 131| uint64_t [OH_ArkWebHttpBodyStream_GetSize](#oh_arkwebhttpbodystream_getsize) (const [ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream) | 获取httpBodyStream的大小。 | 132| uint64_t [OH_ArkWebHttpBodyStream_GetPosition](#oh_arkwebhttpbodystream_getposition) (const [ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream) | 获取httpBodyStream当前的读取位置。 | 133| bool [OH_ArkWebHttpBodyStream_IsChunked](#oh_arkwebhttpbodystream_ischunked) (const [ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream) | 获取httpBodyStream是否采用分块传输。 | 134| bool [OH_ArkWebHttpBodyStream_IsEof](#oh_arkwebhttpbodystream_iseof) (const [ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream) | 如果httpBodyStream中的所有数据都已被读取,则返回true。 | 135| bool [OH_ArkWebHttpBodyStream_IsInMemory](#oh_arkwebhttpbodystream_isinmemory) (const [ArkWeb_HttpBodyStream](#arkweb_httpbodystream) \*httpBodyStream) | 如果httpBodyStream中的上传数据完全在内存中,并且所有读取请求都将同步成功,则返回true。 | 136| int32_t [OH_ArkWebResourceRequest_Destroy](#oh_arkwebresourcerequest_destroy) (const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest) | 销毁ArkWeb_ResourceRequest对象。 | 137| void [OH_ArkWebResourceRequest_GetReferrer](#oh_arkwebresourcerequest_getreferrer) (const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest, char \*\*referrer) | 获取请求的Referrer。 | 138| void [OH_ArkWebResourceRequest_GetRequestHeaders](#oh_arkwebresourcerequest_getrequestheaders) (const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest, [ArkWeb_RequestHeaderList](#arkweb_requestheaderlist) \*\*requestHeaderList) | 获取请求的请求头列表OH_ArkWeb_RequestHeaderList。 | 139| bool [OH_ArkWebResourceRequest_IsRedirect](#oh_arkwebresourcerequest_isredirect) (const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest) | 判断这是否是一个重定向请求。 | 140| bool [OH_ArkWebResourceRequest_IsMainFrame](#oh_arkwebresourcerequest_ismainframe) (const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest) | 判断这是否是主框架文档资源的请求。 | 141| bool [OH_ArkWebResourceRequest_HasGesture](#oh_arkwebresourcerequest_hasgesture) (const [ArkWeb_ResourceRequest](#arkweb_resourcerequest) \*resourceRequest) | 判断这是否是一个由用户手势触发的请求。 | 142| int32_t [OH_ArkWeb_RegisterCustomSchemes](#oh_arkweb_registercustomschemes) (const char \*scheme, int32_t option) | 将custom scheme注册到ArkWeb。 | 143| bool [OH_ArkWebServiceWorker_SetSchemeHandler](#oh_arkwebserviceworker_setschemehandler) (const char \*scheme, [ArkWeb_SchemeHandler](#arkweb_schemehandler) \*schemeHandler) | 为指定scheme设置一个ArkWeb_SchemeHandler以拦截ServiceWorker触发的该scheme类型的请求。 | 144| bool [OH_ArkWeb_SetSchemeHandler](#oh_arkweb_setschemehandler) (const char \*scheme, const char \*webTag, [ArkWeb_SchemeHandler](#arkweb_schemehandler) \*schemeHandler) | 为指定scheme设置一个ArkWeb_SchemeHandler以拦截该scheme类型的请求。 | 145| int32_t [OH_ArkWebServiceWorker_ClearSchemeHandlers](#oh_arkwebserviceworker_clearschemehandlers) () | 清除为ServiceWorker注册的SchemeHandler。 | 146| int32_t [OH_ArkWeb_ClearSchemeHandlers](#oh_arkweb_clearschemehandlers) (const char \*webTag) | 清除为指定web注册的SchemeHandler。 | 147| void [OH_ArkWeb_CreateSchemeHandler](#oh_arkweb_createschemehandler) ([ArkWeb_SchemeHandler](#arkweb_schemehandler) \*\*schemeHandler) | 创建一个ArkWeb_SchemeHandler对象。 | 148| void [OH_ArkWeb_DestroySchemeHandler](#oh_arkweb_destroyschemehandler) ([ArkWeb_SchemeHandler](#arkweb_schemehandler) \*schemeHandler) | 销毁一个ArkWeb_SchemeHandler对象。 | 149| int32_t [OH_ArkWebSchemeHandler_SetUserData](#oh_arkwebschemehandler_setuserdata) ([ArkWeb_SchemeHandler](#arkweb_schemehandler) \*schemeHandler, void \*userData) | 将一个用户数据设置到ArkWeb_SchemeHandler对象中。 | 150| void \* [OH_ArkWebSchemeHandler_GetUserData](#oh_arkwebschemehandler_getuserdata) (const [ArkWeb_SchemeHandler](#arkweb_schemehandler) \*schemeHandler) | 从ArkWeb_SchemeHandler获取用户数据。 | 151| int32_t [OH_ArkWebSchemeHandler_SetOnRequestStart](#oh_arkwebschemehandler_setonrequeststart) ([ArkWeb_SchemeHandler](#arkweb_schemehandler) \*schemeHandler, [ArkWeb_OnRequestStart](#arkweb_onrequeststart) onRequestStart) | 为SchemeHandler设置OnRequestStart回调。 | 152| int32_t [OH_ArkWebSchemeHandler_SetOnRequestStop](#oh_arkwebschemehandler_setonrequeststop) ([ArkWeb_SchemeHandler](#arkweb_schemehandler) \*schemeHandler, [ArkWeb_OnRequestStop](#arkweb_onrequeststop) onRequestStop) | 为SchemeHandler设置OnRequestStop回调。 | 153| void [OH_ArkWeb_CreateResponse](#oh_arkweb_createresponse) ([ArkWeb_Response](#arkweb_response) \*\*response) | 为被拦截的请求创建一个ArkWeb_Response对象。 | 154| void [OH_ArkWeb_DestroyResponse](#oh_arkweb_destroyresponse) ([ArkWeb_Response](#arkweb_response) \*response) | 销毁一个ArkWeb_Response对象。 | 155| int32_t [OH_ArkWebResponse_SetUrl](#oh_arkwebresponse_seturl) ([ArkWeb_Response](#arkweb_response) \*response, const char \*url) | 设置经过重定向或由于HSTS而改变后的解析URL,设置后会触发跳转。 | 156| void [OH_ArkWebResponse_GetUrl](#oh_arkwebresponse_geturl) (const [ArkWeb_Response](#arkweb_response) \*response, char \*\*url) | 获取经过重定向或由于HSTS而更改后的解析URL。 | 157| int32_t [OH_ArkWebResponse_SetError](#oh_arkwebresponse_seterror) ([ArkWeb_Response](#arkweb_response) \*response, [ArkWeb_NetError](#arkweb_neterror) errorCode) | 给ArkWeb_Response对象设置一个错误码。 | 158| [ArkWeb_NetError](#arkweb_neterror) [OH_ArkWebResponse_GetError](#oh_arkwebresponse_geterror) (const [ArkWeb_Response](#arkweb_response) \*response) | 获取ArkWeb_Response的错误码。 | 159| int32_t [OH_ArkWebResponse_SetStatus](#oh_arkwebresponse_setstatus) ([ArkWeb_Response](#arkweb_response) \*response, int status) | 为ArkWeb_Response对象设置一个HTTP状态码。 | 160| int [OH_ArkWebResponse_GetStatus](#oh_arkwebresponse_getstatus) (const [ArkWeb_Response](#arkweb_response) \*response) | 获取ArkWeb_Response的HTTP状态码。 | 161| int32_t [OH_ArkWebResponse_SetStatusText](#oh_arkwebresponse_setstatustext) ([ArkWeb_Response](#arkweb_response) \*response, const char \*statusText) | 为ArkWeb_Response设置状态文本。 | 162| void [OH_ArkWebResponse_GetStatusText](#oh_arkwebresponse_getstatustext) (const [ArkWeb_Response](#arkweb_response) \*response, char \*\*statusText) | 获取ArkWeb_Response的状态文本。 | 163| int32_t [OH_ArkWebResponse_SetMimeType](#oh_arkwebresponse_setmimetype) ([ArkWeb_Response](#arkweb_response) \*response, const char \*mimeType) | 为ArkWeb_Response设置媒体类型。 | 164| void [OH_ArkWebResponse_GetMimeType](#oh_arkwebresponse_getmimetype) (const [ArkWeb_Response](#arkweb_response) \*response, char \*\*mimeType) | 获取ArkWeb_Response的媒体类型。 | 165| int32_t [OH_ArkWebResponse_SetCharset](#oh_arkwebresponse_setcharset) ([ArkWeb_Response](#arkweb_response) \*response, const char \*charset) | 为ArkWeb_Response设置字符集。 | 166| void [OH_ArkWebResponse_GetCharset](#oh_arkwebresponse_getcharset) (const [ArkWeb_Response](#arkweb_response) \*response, char \*\*charset) | 获取ArkWeb_Response的字符集。 | 167| int32_t [OH_ArkWebResponse_SetHeaderByName](#oh_arkwebresponse_setheaderbyname) ([ArkWeb_Response](#arkweb_response) \*response, const char \*name, const char \*value, bool overwrite) | 为ArkWeb_Response设置一个header。 | 168| void [OH_ArkWebResponse_GetHeaderByName](#oh_arkwebresponse_getheaderbyname) (const [ArkWeb_Response](#arkweb_response) \*response, const char \*name, char \*\*value) | 从ArkWeb_Response中获取header。 | 169| int32_t [OH_ArkWebResourceHandler_Destroy](#oh_arkwebresourcehandler_destroy) (const [ArkWeb_ResourceHandler](#arkweb_resourcehandler) \*resourceHandler) | 销毁一个ArkWeb_ResourceHandler对象。 | 170| int32_t [OH_ArkWebResourceHandler_DidReceiveResponse](#oh_arkwebresourcehandler_didreceiveresponse) (const [ArkWeb_ResourceHandler](#arkweb_resourcehandler) \*resourceHandler, const [ArkWeb_Response](#arkweb_response) \*response) | 将构造的响应头传递给被拦截的请求。 | 171| int32_t [OH_ArkWebResourceHandler_DidReceiveData](#oh_arkwebresourcehandler_didreceivedata) (const [ArkWeb_ResourceHandler](#arkweb_resourcehandler) \*resourceHandler, const uint8_t \*buffer, int64_t bufLen) | 将构造的响应体传递给被拦截的请求。 | 172| int32_t [OH_ArkWebResourceHandler_DidFinish](#oh_arkwebresourcehandler_didfinish) (const [ArkWeb_ResourceHandler](#arkweb_resourcehandler) \*resourceHandler) | 通知ArkWeb内核被拦截的请求已经完成,并且没有更多的数据可用。 | 173| int32_t [OH_ArkWebResourceHandler_DidFailWithError](#oh_arkwebresourcehandler_didfailwitherror) (const [ArkWeb_ResourceHandler](#arkweb_resourcehandler) \*resourceHandler, [ArkWeb_NetError](#arkweb_neterror) errorCode) | 通知ArkWeb内核被拦截请求应该失败。 | 174| void [OH_ArkWeb_ReleaseString](#oh_arkweb_releasestring) (char \*string) | 释放由NDK接口创建的字符串 | 175| void [OH_ArkWeb_ReleaseByteArray](#oh_arkweb_releasebytearray) (uint8_t \*byteArray) | 释放由NDK接口创建的字节数组。 | 176| void [OH_NativeArkWeb_RunJavaScript](#oh_nativearkweb_runjavascript) (const char \*webTag, const char \*jsCode, [NativeArkWeb_OnJavaScriptCallback](#nativearkweb_onjavascriptcallback) callback) | 在当前显示页面的环境下,加载并执行一段JavaScript代码。 | 177| void [OH_NativeArkWeb_RegisterJavaScriptProxy](#oh_nativearkweb_registerjavascriptproxy) (const char \*webTag, const char \*objName, const char \*\*methodList, [NativeArkWeb_OnJavaScriptProxyCallback](#nativearkweb_onjavascriptproxycallback) \*callback, int32_t size, bool needRefresh) | 注册对象及函数名称列表。 | 178| void [OH_NativeArkWeb_UnregisterJavaScriptProxy](#oh_nativearkweb_unregisterjavascriptproxy) (const char \*webTag, const char \*objName) | 删除已注册的对象及其下的回调函数。 | 179| void [OH_NativeArkWeb_SetJavaScriptProxyValidCallback](#oh_nativearkweb_setjavascriptproxyvalidcallback) (const char \*webTag, [NativeArkWeb_OnValidCallback](#nativearkweb_onvalidcallback) callback) | 设置对象可注册时的回调函数。 | 180| [NativeArkWeb_OnValidCallback](#nativearkweb_onvalidcallback) [OH_NativeArkWeb_GetJavaScriptProxyValidCallback](#oh_nativearkweb_getjavascriptproxyvalidcallback) (const char \*webTag) | 获取已注册的对象可注册时的回调函数。 | 181| void [OH_NativeArkWeb_SetDestroyCallback](#oh_nativearkweb_setdestroycallback) (const char \*webTag, [NativeArkWeb_OnDestroyCallback](#nativearkweb_ondestroycallback) callback) | 设置组件销毁时的回调函数。 | 182| [NativeArkWeb_OnDestroyCallback](#nativearkweb_ondestroycallback) [OH_NativeArkWeb_GetDestroyCallback](#oh_nativearkweb_getdestroycallback) (const char \*webTag) | 获取已注册的组件销毁时的回调函数。 | 183| [ArkWeb_ErrorCode](#arkweb_errorcode) [OH_NativeArkWeb_LoadData](#oh_nativearkweb_loaddata) (const char* webTag,const char* data,const char* mimeType,const char* encoding,const char* baseUrl,const char* historyUrl) | 加载数据或URL,此函数应在主线程中调用。 | 184| bool [OH_ArkWeb_RegisterScrollCallback](#oh_arkweb_registerscrollcallback) (const char\* webTag, [ArkWeb_OnScrollCallback](#arkweb_onscrollcallback) callback, void\* userData) | 设置组件滚动时的回调函数。 | 185 186 187## 宏定义说明 188 189 190### ARKWEB_MEMBER_EXISTS 191 192``` 193#define ARKWEB_MEMBER_EXISTS( s, f ) ((intptr_t) & ((s)->f) - (intptr_t)(s) + sizeof((s)->f) <= *reinterpret_cast<size_t*>(s)) 194``` 195**描述:** 196 197检查结构体中是否存在该成员变量。 198 199**起始版本:** 12 200 201 202### ARKWEB_MEMBER_MISSING 203 204``` 205#define ARKWEB_MEMBER_MISSING( s, f ) (!ARKWEB_MEMBER_EXISTS(s, f) || !((s)->f)) 206``` 207**描述:** 208 209当前结构体存在该成员变量则返回false,否则返回true。 210 211**起始版本:** 12 212 213 214## 类型定义说明 215 216 217### ArkWeb_CustomSchemeOption 218 219``` 220typedef enum ArkWeb_CustomSchemeOption ArkWeb_CustomSchemeOption 221``` 222**描述:** 223 224custom scheme的配置信息。 225 226**系统能力:** SystemCapability.Web.Webview.Core 227 228**起始版本:** 12 229 230 231### ArkWeb_ErrorCode 232 233``` 234typedef enum ArkWeb_ErrorCode ArkWeb_ErrorCode 235``` 236**描述:** 237 238定义ArkWeb NDK接口异常错误码。 239 240**系统能力:** SystemCapability.Web.Webview.Core 241 242**起始版本:** 12 243 244 245### ArkWeb_HttpBodyStream 246 247``` 248typedef struct ArkWeb_HttpBodyStream_ ArkWeb_HttpBodyStream 249``` 250**描述:** 251 252请求的上传数据。 253 254使用OH_ArkWebHttpBodyStream_\*接口来读取上传的数据。 255 256**系统能力:** SystemCapability.Web.Webview.Core 257 258**起始版本:** 12 259 260 261### ArkWeb_HttpBodyStreamInitCallback 262 263``` 264typedef void(* ArkWeb_HttpBodyStreamInitCallback) (const ArkWeb_HttpBodyStream *httpBodyStream, ArkWeb_NetError result) 265``` 266**描述:** 267 268ArkWeb_HttpBodyStream初始化操作完成时回调函数。 269 270**系统能力:** SystemCapability.Web.Webview.Core 271 272**起始版本:** 12 273 274**参数:** 275 276| 名称 | 描述 | 277| -------- | -------- | 278| httpBodyStream | ArkWeb_HttpBodyStream。 | 279| result | 成功时返回ARKWEB_NET_OK,否则请参考[arkweb_net_error_list.h](arkweb__net__error__list_8h.md)。 | 280 281### ArkWeb_HttpBodyStreamReadCallback 282 283``` 284typedef void(* ArkWeb_HttpBodyStreamReadCallback) (const ArkWeb_HttpBodyStream *httpBodyStream, uint8_t *buffer, int bytesRead) 285``` 286**描述:** 287 288当OH_ArkWebHttpBodyStream_Read读取操作完成时的回调函数。 289 290**系统能力:** SystemCapability.Web.Webview.Core 291 292**起始版本:** 12 293 294**参数:** 295 296| 名称 | 描述 | 297| -------- | -------- | 298| httpBodyStream | ArkWeb_HttpBodyStream。 | 299| buffer | 接收数据的buffer。 | 300| bytesRead | OH_ArkWebHttpBodyStream_Read后的回调函数。如果bytesRead大于0,则表示buffer已填充了bytesRead大小的数据。 调用者可以从buffer中读取数据,如果OH_ArkWebHttpBodyStream_IsEOF为false,则调用者可以继续读取剩余的数据。 | 301 302 303### ArkWeb_JavaScriptValuePtr 304 305``` 306typedef struct ArkWeb_JavaScriptValue* ArkWeb_JavaScriptValuePtr 307``` 308**描述:** 309 310JavaScript数据结构体指针。 311 312**起始版本:** 14 313 314 315### ArkWeb_JavaScriptValueType 316 317``` 318typedef enum ArkWeb_JavaScriptValueType ArkWeb_JavaScriptValueType 319``` 320**描述:** 321 322JavaScript数据类型。 323 324**起始版本:** 14 325 326 327### ArkWeb_NetError 328 329``` 330typedef enum ArkWeb_NetError ArkWeb_NetError 331``` 332**描述:** 333 334定义ArkWeb网络协议栈错误码。 335 336**系统能力:** SystemCapability.Web.Webview.Core 337 338**起始版本:** 12 339 340 341### ArkWeb_OnComponentCallback 342 343``` 344typedef void(* ArkWeb_OnComponentCallback) (const char *webTag, void *userData) 345``` 346**描述:** 347 348组件事件通知相关的通用回调。 349 350**起始版本:** 12 351 352 353### ArkWeb_OnJavaScriptCallback 354 355``` 356typedef void(* ArkWeb_OnJavaScriptCallback) (const char *webTag, const ArkWeb_JavaScriptBridgeData *data, void *userData) 357``` 358**描述:** 359 360注入的JavaScript执行完成的回调。 361 362**起始版本:** 12 363 364 365### ArkWeb_OnJavaScriptProxyCallback 366 367``` 368typedef void(* ArkWeb_OnJavaScriptProxyCallback) (const char *webTag, const ArkWeb_JavaScriptBridgeData *dataArray, size_t arraySize, void *userData) 369``` 370**描述:** 371 372Proxy方法被执行的回调。 373 374**起始版本:** 12 375 376 377### ArkWeb_OnJavaScriptProxyCallbackWithResult 378 379``` 380typedef ArkWeb_JavaScriptValuePtr(* ArkWeb_OnJavaScriptProxyCallbackWithResult) (const char *webTag, const ArkWeb_JavaScriptBridgeData *dataArray, size_t arraySize, void *userData) 381``` 382**描述:** 383 384Proxy方法被执行的回调。 385 386**起始版本:** 14 387 388**参数:** 389 390| 名称 | 描述 | 391| -------- | -------- | 392| webTag | Web组件名称。 | 393| dataArray | 数组数据。 | 394| arraySize | 数组大小。 | 395| userData | 用户自定义的数据。 | 396 397 398### ArkWeb_OnMessageEventHandler 399 400``` 401typedef void(* ArkWeb_OnMessageEventHandler) (const char *webTag, const ArkWeb_WebMessagePortPtr port, const ArkWeb_WebMessagePtr message, void *userData) 402``` 403**描述:** 404 405处理HTML发送过来的Post Message数据。 406 407**起始版本:** 12 408 409**参数:** 410 411| 名称 | 描述 | 412| -------- | -------- | 413| webTag | Web组件名称。 | 414| port | Post Message端口。 | 415| message | Post Message数据。 | 416| userData | 用户自定义数据。 | 417 418 419### ArkWeb_OnRequestStart 420 421``` 422typedef void(* ArkWeb_OnRequestStart) (const ArkWeb_SchemeHandler *schemeHandler, ArkWeb_ResourceRequest *resourceRequest, const ArkWeb_ResourceHandler *resourceHandler, bool *intercept) 423``` 424**描述:** 425 426请求开始的回调,这将在IO线程上被调用。 427 428**系统能力:** SystemCapability.Web.Webview.Core 429 430**起始版本:** 12 431 432**参数:** 433 434| 名称 | 描述 | 435| -------- | -------- | 436| schemeHandler | ArkWeb_SchemeHandler。 | 437| resourceRequest | 通过该对象获取请求的信息。 | 438| resourceHandler | 请求的ArkWeb_ResourceHandler。如果intercept设置为false,则不应使用它。 | 439| intercept | 如果为true,则会拦截请求;如果为false,则不会拦截。 | 440 441 442### ArkWeb_OnRequestStop 443 444``` 445typedef void(* ArkWeb_OnRequestStop) (const ArkWeb_SchemeHandler *schemeHandler, const ArkWeb_ResourceRequest *resourceRequest) 446``` 447**描述:** 448 449请求完成时的回调函数。 450 451这将在IO线程上被调用。 452 453应该使用ArkWeb_ResourceRequest_Destroy销毁resourceRequest, 454 455并使用ArkWeb_ResourceHandler_Destroy销毁在ArkWeb_OnRequestStart中接收到的ArkWeb_ResourceHandler。 456 457**系统能力:** SystemCapability.Web.Webview.Core 458 459**起始版本:** 12 460 461**参数:** 462 463| 名称 | 描述 | 464| -------- | -------- | 465| schemeHandler | ArkWeb_SchemeHandler。 | 466| resourceRequest | ArkWeb_ResourceRequest。 | 467 468 469### ArkWeb_RequestHeaderList 470 471``` 472typedef struct ArkWeb_RequestHeaderList_ ArkWeb_RequestHeaderList 473``` 474**描述:** 475 476请求头列表。 477 478**系统能力:** SystemCapability.Web.Webview.Core 479 480**起始版本:** 12 481 482 483### ArkWeb_ResourceHandler 484 485``` 486typedef struct ArkWeb_ResourceHandler_ ArkWeb_ResourceHandler 487``` 488**描述:** 489 490用于被拦截的URL请求。 491 492可以通过ArkWeb_ResourceHandler发送自定义请求头以及自定义请求体。 493 494**系统能力:** SystemCapability.Web.Webview.Core 495 496**起始版本:** 12 497 498 499### ArkWeb_ResourceRequest 500 501``` 502typedef struct ArkWeb_ResourceRequest_ ArkWeb_ResourceRequest 503``` 504**描述:** 505 506对应内核的一个请求,可以通过OH_ArkWeb_ResourceRequest获取请求的URL、method、post data以及其他信息。 507 508**系统能力:** SystemCapability.Web.Webview.Core 509 510**起始版本:** 12 511 512 513### ArkWeb_ResourceType 514 515``` 516typedef enum ArkWeb_ResourceType ArkWeb_ResourceType 517``` 518**描述:** 519 520请求的资源类型。 521 522这些常量与Chromium中的ResourceType的对应项相匹配,不应重新编号。 523 524**系统能力:** SystemCapability.Web.Webview.Core 525 526**起始版本:** 12 527 528 529### ArkWeb_Response 530 531``` 532typedef struct ArkWeb_Response_ ArkWeb_Response 533``` 534**描述:** 535 536为被拦截的请求构造一个ArkWeb_Response。 537 538**系统能力:** SystemCapability.Web.Webview.Core 539 540**起始版本:** 12 541 542 543### ArkWeb_SchemeHandler 544 545``` 546typedef struct ArkWeb_SchemeHandler_ ArkWeb_SchemeHandler 547``` 548**描述:** 549 550该类用于拦截指定scheme的请求。 551 552**系统能力:** SystemCapability.Web.Webview.Core 553 554**起始版本:** 12 555 556 557### ArkWeb_WebMessagePortPtr 558 559``` 560typedef struct ArkWeb_WebMessagePort* ArkWeb_WebMessagePortPtr 561``` 562**描述:** 563 564Post Message端口结构体指针。 565 566**起始版本:** 12 567 568 569### ArkWeb_WebMessagePtr 570 571``` 572typedef struct ArkWeb_WebMessage* ArkWeb_WebMessagePtr 573``` 574**描述:** 575 576Post Message数据结构体指针。 577 578**起始版本:** 12 579 580 581### ArkWeb_WebMessageType 582 583``` 584typedef enum ArkWeb_WebMessageType ArkWeb_WebMessageType 585``` 586**描述:** 587 588Post Message数据类型。 589 590**起始版本:** 12 591 592 593### NativeArkWeb_OnDestroyCallback 594 595``` 596typedef void(* NativeArkWeb_OnDestroyCallback) (const char *) 597``` 598**描述:** 599 600定义Web组件销毁时的回调函数的类型。 601 602**起始版本:** 11 603 604 605### NativeArkWeb_OnJavaScriptCallback 606 607``` 608typedef void(* NativeArkWeb_OnJavaScriptCallback) (const char *) 609``` 610**描述:** 611 612定义执行JavaScript代码后返回结果的回调函数的类型。 613 614**起始版本:** 11 615 616 617### NativeArkWeb_OnJavaScriptProxyCallback 618 619``` 620typedef char*(* NativeArkWeb_OnJavaScriptProxyCallback) (const char **argv, int32_t argc) 621``` 622**描述:** 623 624定义注入对象的回调函数的类型。 625 626**起始版本:** 11 627 628 629### NativeArkWeb_OnValidCallback 630 631``` 632typedef void(* NativeArkWeb_OnValidCallback) (const char *) 633``` 634**描述:** 635 636定义Web组件可用时的回调函数的类型。 637 638**起始版本:** 11 639 640### ArkWeb_OnScrollCallback 641 642``` 643typedef void(*ArkWeb_OnScrollCallback) (const char* webTag, void* userData, double x, double y) 644``` 645**描述:** 646 647定义Web组件滚动时的回调函数的类型。 648 649**起始版本:** 16 650 651**参数:** 652 653| 名称 | 描述 | 654| -------- | -------- | 655| webTag | Web组件名称。 | 656| userData | 用户自定义数据。 | 657| x | x轴滚动偏移。 | 658| y | y轴滚动偏移。 | 659 660## 枚举类型说明 661 662 663### ArkWeb_CustomSchemeOption 664 665``` 666enum ArkWeb_CustomSchemeOption 667``` 668**描述:** 669 670custom scheme的配置信息。 671 672**系统能力:** SystemCapability.Web.Webview.Core 673 674**起始版本:** 12 675 676| 枚举值 | 描述 | 677| -------- | -------- | 678| ARKWEB_SCHEME_OPTION_STANDARD | 如果设置了ARKWEB_SCHEME_OPTION_STANDARD,那么该scheme将被视为标准scheme来处理。 标准scheme需要遵守在RFC 1738第3.1节中定义的URL规范化和解析规则,该规则可以在 http://www.ietf.org/rfc/rfc1738.txt 中找到。 | 679| ARKWEB_SCHEME_OPTION_LOCAL | 如果设置了ARKWEB_SCHEME_OPTION_LOCAL,则将使用与“file” URL相同的安全规则来处理该scheme。 | 680| ARKWEB_SCHEME_OPTION_DISPLAY_ISOLATED | 如果设置了ARKWEB_SCHEME_OPTION_DISPLAY_ISOLATED,则该scheme的请求只能由使用相同scheme加载的页面中发起。 | 681| ARKWEB_SCHEME_OPTION_SECURE | 如果设置了ARKWEB_SCHEME_OPTION_SECURE,则将使用与“https” URL相同的安全规则来处理该scheme。 | 682| ARKWEB_SCHEME_OPTION_CORS_ENABLED | 如果设置了ARKWEB_SCHEME_OPTION_CORS_ENABLED,则该scheme可以发送CORS请求。在大多数情况下,当设置了ARKWEB_SCHEME_OPTION_STANDARD时,应该设置此值。 | 683| ARKWEB_SCHEME_OPTION_CSP_BYPASSING | 如果设置了ARKWEB_SCHEME_OPTION_CSP_BYPASSING,则该scheme可以绕过内容安全策略(CSP)检查。 在大多数情况下,当设置了ARKWEB_SCHEME_OPTION_STANDARD时,不应设置此值。 | 684| ARKWEB_SCHEME_OPTION_FETCH_ENABLED | 如果设置了ARKWEB_SCHEME_OPTION_FETCH_ENABLED,则可以发起该scheme的FETCH API请求。 | 685| ARKWEB_SCHEME_OPTION_CODE_CACHE_ENABLED | 如果设置了ARKWEB_SCHEME_OPTION_CODE_CACHE_ENABLED,则该scheme的js资源支持生成code cache。 | 686 687 688### ArkWeb_ErrorCode 689 690``` 691enum ArkWeb_ErrorCode 692``` 693**描述:** 694 695定义ArkWeb NDK接口异常错误码。 696 697**系统能力:** SystemCapability.Web.Webview.Core 698 699**起始版本:** 12 700 701| 枚举值 | 描述 | 702| -------- | -------- | 703| ARKWEB_SUCCESS | 成功。 | 704| ARKWEB_INIT_ERROR | 初始化失败。 | 705| ARKWEB_ERROR_UNKNOWN | 未知错误。 | 706| ARKWEB_INVALID_PARAM | 参数无效。 | 707| ARKWEB_SCHEME_REGISTER_FAILED | 注册scheme的配置失败,应该在创建ArkWeb之前注册。 | 708| ARKWEB_INVALID_URL | 无效的URL。 | 709| ARKWEB_INVALID_COOKIE_VALUE | 无效的cookie值。 | 710 711 712### ArkWeb_JavaScriptValueType 713 714``` 715enum ArkWeb_JavaScriptValueType 716``` 717**描述:** 718 719JavaScript数据类型。 720 721**起始版本:** 14 722 723| 枚举值 | 描述 | 724| -------- | -------- | 725| ARKWEB_JAVASCRIPT_NONE | 错误数据。 | 726| ARKWEB_JAVASCRIPT_STRING | 字符串数据类型。 | 727| ARKWEB_JAVASCRIPT_BOOL | bool数据类型。 | 728 729 730### ArkWeb_NativeAPIVariantKind 731 732``` 733enum ArkWeb_NativeAPIVariantKind 734``` 735**描述:** 736 737定义Native API的类型枚举。 738 739**起始版本:** 12 740 741| 枚举值 | 描述 | 742| -------- | -------- | 743| ARKWEB_NATIVE_COMPONENT | component相关API类型。 | 744| ARKWEB_NATIVE_CONTROLLER | controller相关API类型。 | 745| ARKWEB_NATIVE_WEB_MESSAGE_PORT | webMessagePort相关API类型。 | 746| ARKWEB_NATIVE_WEB_MESSAGE | webMessage相关API类型。 | 747| ARKWEB_NATIVE_COOKIE_MANAGER | cookieManager相关API类型。 | 748| ARKWEB_NATIVE_JAVASCRIPT_VALUE | JavaScriptValue相关接口类型。<br/>自从<br/>14 | 749 750 751### ArkWeb_NetError 752 753``` 754enum ArkWeb_NetError 755``` 756**描述:** 757 758定义ArkWeb网络协议栈错误码。 759 760**系统能力:** SystemCapability.Web.Webview.Core 761 762**起始版本:** 12 763 764| 枚举值 | 描述 | 765| -------- | -------- | 766| ARKWEB_NET_OK | 正常。 | 767| ARKWEB_ERR_IO_PENDING | 异步IO操作尚未完成。这通常并不表示致命错误。通常,这个错误将作为通知生成,以等待某个外部通知,表明IO操作最终已完成。 | 768| ARKWEB_ERR_FAILED | 发生了通用故障。 | 769| ARKWEB_ERR_ABORTED | 操作被中止(由于用户操作)。 | 770| ARKWEB_ERR_INVALID_ARGUMENT | 该函数的参数不正确。 | 771| ARKWEB_ERR_INVALID_HANDLE | 句柄或文件描述符无效。 | 772| ARKWEB_ERR_FILE_NOT_FOUND | 文件或目录无法找到。 | 773| ARKWEB_ERR_TIMED_OUT | 操作超时。 | 774| ARKWEB_ERR_FILE_TOO_LARGE | 文件过大。 | 775| ARKWEB_ERR_UNEXPECTED | 发生了一个意外的错误。这可能是由编程错误或无效的假设导致的。 | 776| ARKWEB_ERR_ACCESS_DENIED | 访问除网络外的资源被拒绝。 | 777| ARKWEB_ERR_NOT_IMPLEMENTED | 由于功能未实现,操作失败。 | 778| ARKWEB_ERR_INSUFFICIENT_RESOURCES | 没有足够的资源来完成操作。 | 779| ARKWEB_ERR_OUT_OF_MEMORY | 内存溢出。 | 780| ARKWEB_ERR_UPLOAD_FILE_CHANGED | 文件上传失败,因为文件的修改时间与预期不同。 | 781| ARKWEB_ERR_SOCKET_NOT_CONNECTED | socket未连接。 | 782| ARKWEB_ERR_FILE_EXISTS | 文件已存在。 | 783| ARKWEB_ERR_FILE_PATH_TOO_LONG | 文件路径或者文件名过长。 | 784| ARKWEB_ERR_FILE_NO_SPACE | 磁盘上剩余空间不足。 | 785| ARKWEB_ERR_FILE_VIRUS_INFECTED | 文件含有病毒。 | 786| ARKWEB_ERR_BLOCKED_BY_CLIENT | 客户端选择阻止该请求。 | 787| ARKWEB_ERR_NETWORK_CHANGED | 网络发生变化。 | 788| ARKWEB_ERR_BLOCKED_BY_ADMINISTRATOR | 请求被域管理员配置的URL阻止列表所阻止。 | 789| ARKWEB_ERR_SOCKET_CONNECTED | socket已连接。 | 790| ARKWEB_ERR_UPLOAD_STREAM_REWIND_NOT_SUPPORTED | 由于重试或重定向,需要重新读取上传流,但上传流不支持该操作,因此上传失败。 | 791| ARKWEB_ERR_CONTEXT_SHUT_DOWN | 请求失败,因为URLRequestContext正在关闭或已经关闭。 | 792| ARKWEB_ERR_BLOCKED_BY_RESPONSE | 请求失败,因为响应不满足要求(例如“X-Frame-Options”和“Content Security Policy”检查以及“Cross Origin Resource Policy”)。 | 793| ARKWEB_ERR_CLEARTEXT_NOT_PERMITTED | 由于系统策略禁止某些或所有明文请求,请求被阻止。 | 794| ARKWEB_ERR_BLOCKED_BY_CSP | 请求被内容安全策略阻止。 | 795| ARKWEB_ERR_H2_OR_QUIC_REQUIRED | 由于没有H/2或QUIC会话,请求被阻止。 | 796| ARKWEB_ERR_BLOCKED_BY_ORB | 请求被CORB或ORB阻止。 | 797| ARKWEB_ERR_CONNECTION_CLOSED | 连接已关闭(对应于TCP FIN)。 | 798| ARKWEB_ERR_CONNECTION_RESET | 连接被重置(对应于TCP RST)。 | 799| ARKWEB_ERR_CONNECTION_REFUSED | 连接尝试被拒绝。 | 800| ARKWEB_ERR_CONNECTION_ABORTED | 由于未收到发送数据的ACK而导致连接超时。这可能包括未收到ACK的FIN数据包。 | 801| ARKWEB_ERR_CONNECTION_FAILED | 连接尝试失败。 | 802| ARKWEB_ERR_NAME_NOT_RESOLVED | 域名无法解析。 | 803| ARKWEB_ERR_INTERNET_DISCONNECTED | 网络断开。 | 804| ARKWEB_ERR_SSL_PROTOCOL_ERROR | 发生了SSL协议错误。 | 805| ARKWEB_ERR_ADDRESS_INVALID | IP地址或端口号无效(例如,无法连接到IP地址0或端口0)。 | 806| ARKWEB_ERR_ADDRESS_UNREACHABLE | IP地址无法访问。这通常意味着没有到达指定主机或网络的路由。 | 807| ARKWEB_ERR_SSL_CLIENT_AUTH_CERT_NEEDED | 服务器请求SSL客户端身份验证的客户端证书。 | 808| ARKWEB_ERR_TUNNEL_CONNECTION_FAILED | 无法通过代理建立隧道连接。 | 809| ARKWEB_ERR_NO_SSL_VERSIONS_ENABLED | 未启用任何SSL协议版本。 | 810| ARKWEB_ERR_SSL_VERSION_OR_CIPHER_MISMATCH | 客户端和服务器不支持通用的SSL协议版本或密码套件。 | 811| ARKWEB_ERR_SSL_RENEGOTIATION_REQUESTED | 服务器请求重新协商(重新握手)。 | 812| ARKWEB_ERR_PROXY_AUTH_UNSUPPORTED | 代理请求进行身份验证(用于建立隧道,但使用的方法不受支持)。 | 813| ARKWEB_ERR_BAD_SSL_CLIENT_AUTH_CERT | SSL握手未能成功,原因是客户端证书不正确或缺失。 | 814| ARKWEB_ERR_CONNECTION_TIMED_OUT | 连接尝试超时。 | 815| ARKWEB_ERR_HOST_RESOLVER_QUEUE_TOO_LARGE | 有太多待处理的DNS解析,因此队列中的一个请求被中止了。 | 816| ARKWEB_ERR_SOCKS_CONNECTION_FAILED | 为目标主机建立到SOCKS代理服务器的连接失败。 | 817| ARKWEB_ERR_SOCKS_CONNECTION_HOST_UNREACHABLE | SOCKS代理服务器无法建立与目标主机的连接,因为该主机无法访问。 | 818| ARKWEB_ERR_ALPN_NEGOTIATION_FAILED | 协商备用协议的请求失败。 | 819| ARKWEB_ERR_SSL_NO_RENEGOTIATION | 对等端发送了SSL no_regregation警报消息。 | 820| ARKWEB_ERR_WINSOCK_UNEXPECTED_WRITTEN_BYTES | Winsock有时会报告写入的数据多于传递的数据。这可能是由于LSP损坏。 | 821| ARKWEB_ERR_SSL_DECOMPRESSION_FAILURE_ALERT | SSL对等端向我们发送了一个致命的decompression_failure警告。这通常发生在对等端错误地认为它支持DEFLATE压缩并选择它时。 | 822| ARKWEB_ERR_SSL_BAD_RECORD_MAC_ALERT | SSL对等端向我们发送了一个致命的bad_record_mac警告。这通常发生在错误支持DEFLATE的服务器上。 | 823| ARKWEB_ERR_PROXY_AUTH_REQUESTED | 代理请求身份验证(用于建立隧道)。 | 824| ARKWEB_ERR_PROXY_CONNECTION_FAILED | 无法创建到代理服务器的连接。在解析其名称或将其套接字连接到代理服务器时发生错误。请注意,这不包括HTTP代理的实际“CONNECT”方法期间的失败。 | 825| ARKWEB_ERR_MANDATORY_PROXY_CONFIGURATION_FAILED | 无法使用强制代理配置。目前,这意味着无法获取、解析或执行强制PAC脚本。 | 826| ARKWEB_ERR_PRECONNECT_MAX_SOCKET_LIMIT | 在预连接时,我们已达到套接字池的最大套接字限制。我们不再尝试预连接更多套接字。 | 827| ARKWEB_ERR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED | 使用SSL客户端证书的私钥的权限被拒绝。 | 828| ARKWEB_ERR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY | SSL客户端证书没有私钥。 | 829| ARKWEB_ERR_PROXY_CERTIFICATE_INVALID | HTTPS代理提供的证书无效。 | 830| ARKWEB_ERR_NAME_RESOLUTION_FAILED | 在尝试进行域名解析(DNS)时发生错误。 | 831| ARKWEB_ERR_NETWORK_ACCESS_DENIED | 访问网络的权限被拒绝。这用于区分很可能是由防火墙导致的错误和其他访问被拒绝的错误。另请参阅ERR_ACCESS_DENIED。 | 832| ARKWEB_ERR_TEMPORARILY_THROTTLED | 请求节流模块取消了此请求,以避免DDOS攻击。 | 833| ARKWEB_ERR_HTTPS_PROXY_TUNNEL_RESPONSE_REDIRECT | 通过HTTPS代理创建SSL隧道连接的请求收到了302(临时重定向)响应。响应体可能包含请求失败原因的说明。 | 834| ARKWEB_ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED | 我们无法使用客户端证书的私钥签署SSL客户端身份验证握手的CertificateVerify数据。 可能导致这种情况的原因包括用户隐式或显式地拒绝访问私钥,私钥可能无法用于签名,密钥可能依赖于已无效的缓存句柄,或者CSP不允许签署任意数据。 | 835| ARKWEB_ERR_MSG_TOO_BIG | 消息对于传输来说太大了。(例如,UDP消息超过了大小阈值)。 | 836| ARKWEB_ERR_WS_PROTOCOL_ERROR | Websocket协议错误。表示由于帧格式错误或其他协议违规,我们正在终止连接。 | 837| ARKWEB_ERR_ADDRESS_IN_USE | 当尝试绑定已使用的地址时返回。 | 838| ARKWEB_ERR_SSL_HANDSHAKE_NOT_COMPLETED | 由于SSL握手尚未完成,操作失败。 | 839| ARKWEB_ERR_SSL_BAD_PEER_PUBLIC_KEY | SSL对等方的公钥无效。 | 840| ARKWEB_ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN | 证书与主机名的内置公钥Pins不匹配。Pin在net/http/transport_security_state.cc中设置,并且要求在从叶节点到根节点的路径上存在一组公钥中的一个。 | 841| ARKWEB_ERR_CLIENT_AUTH_CERT_TYPE_UNSUPPORTED | 服务器请求客户端证书,但请求中未包含我们支持的任何类型。 | 842| ARKWEB_ERR_SSL_DECRYPT_ERROR_ALERT | SSL对等端向我们发送了一个致命的decrypt_error警告。这通常发生在对等端无法正确验证签名(在CertificateVerify或ServerKeyExchange中)或验证Finished消息时。 | 843| ARKWEB_ERR_WS_THROTTLE_QUEUE_TOO_LARGE | 待处理的WebSocketJob实例太多,因此新任务没有推送到队列中。 | 844| ARKWEB_ERR_SSL_SERVER_CERT_CHANGED | 在重新协商过程中,SSL服务器证书发生了更改。 | 845| ARKWEB_ERR_SSL_UNRECOGNIZED_NAME_ALERT | SSL服务器向我们发送了一个致命的unrecognized_name警告。 | 846| ARKWEB_ERR_SOCKET_SET_RECEIVE_BUFFER_SIZE_ERROR | 无法按照请求设置套接字的接收缓冲区大小。 | 847| ARKWEB_ERR_SOCKET_SET_SEND_BUFFER_SIZE_ERROR | 无法按照请求设置套接字的发送缓冲区大小。 | 848| ARKWEB_ERR_SOCKET_RECEIVE_BUFFER_SIZE_UNCHANGEABLE | 尽管setsockopt返回成功代码,但无法将套接字的接收缓冲区大小设置为所请求的值。 | 849| ARKWEB_ERR_SOCKET_SEND_BUFFER_SIZE_UNCHANGEABLE | 尽管setsockopt返回成功代码,但无法将套接字的发送缓冲区大小设置为所请求的值。 | 850| ARKWEB_ERR_SSL_CLIENT_AUTH_CERT_BAD_FORMAT | 无法将客户端证书从平台存储导入到SSL库中。 | 851| ARKWEB_ERR_ICANN_NAME_COLLISION | 将主机名解析为IP地址列表时,包含了IPv4地址“127.0.53.53”。这是ICANN推荐的一个特殊IP地址,用于指示存在名称冲突,并提醒管理员注意潜在问题。 | 852| ARKWEB_ERR_SSL_SERVER_CERT_BAD_FORMAT | SSL服务器提供了一个无法解码的证书。这不是一个证书错误代码,因为没有可用的X509Certificate对象。这个错误是致命的。 | 853| ARKWEB_ERR_CT_STH_PARSING_FAILED | Certificate Transparency:收到的Signed Tree Head无法解析。 | 854| ARKWEB_ERR_CT_STH_INCOMPLETE | 证书透明度:收到的已签名树头可以成功解析为JSON,但缺少某些字段。 | 855| ARKWEB_ERR_UNABLE_TO_REUSE_CONNECTION_FOR_PROXY_AUTH | 在AuthController用于生成凭据之前,尝试重用连接以发送代理身份验证凭据失败。调用者应该使用新连接重新使用控制器。此错误仅由网络堆栈内部使用。 | 856| ARKWEB_ERR_CT_CONSISTENCY_PROOF_PARSING_FAILED | 证书透明度:无法解析收到的一致性证明。 | 857| ARKWEB_ERR_SSL_OBSOLETE_CIPHER | SSL服务器要求一个已被移除的不受支持的密码套件。在这个密码套件被移除后的一两个版本更新中,作为回退策略,这个错误将被临时发出信号,之后回退策略将被移除。 | 858| ARKWEB_ERR_WS_UPGRADE | 当WebSocket握手成功完成并且连接已升级时,将使用此错误代码取消URLRequest。 | 859| ARKWEB_ERR_READ_IF_READY_NOT_IMPLEMENTED | Socket ReadIfReady支持尚未实现。这个错误不应该被用户看到,因为正常的Read方法将作为备选方案使用。 | 860| ARKWEB_ERR_NO_BUFFER_SPACE | 没有可用的套接字缓冲区空间。 | 861| ARKWEB_ERR_SSL_CLIENT_AUTH_NO_COMMON_ALGORITHMS | 我们的客户端证书私钥和服务器的首选项之间没有共同的签名算法。 | 862| ARKWEB_ERR_EARLY_DATA_REJECTED | TLS 1.3 Early Data被服务器拒绝。这将在从套接字返回任何数据之前收到。应该禁用Early Data并重试请求。 | 863| ARKWEB_ERR_WRONG_VERSION_ON_EARLY_DATA | 提供了TLS 1.3 Early Data,但服务器以TLS 1.2或更早版本进行响应。这是为了解决Early Data和TLS 1.2之间向后兼容问题的内部错误代码。 在套接字返回任何数据之前将收到此错误代码。应该禁用Early Data后重试请求。详情请参阅https://tools.ietf.org/html/rfc8446\#appendix-D.3。 | 864| ARKWEB_ERR_TLS13_DOWNGRADE_DETECTED | 启用了TLS 1.3,但协商了一个较低版本,并且服务器返回了一个值,表明它支持TLS 1.3。 这是TLS 1.3安全检查的一部分,但也可能表明用户位于一个有问题的TLS终止代理之后,该代理错误地实现了TLS 1.2。(参见https://crbug.com/boringssl/226) | 865| ARKWEB_ERR_SSL_KEY_USAGE_INCOMPATIBLE | 服务器的证书有一个与协商的TLS密钥交换方法不兼容的keyUsage扩展。 | 866| ARKWEB_ERR_INVALID_ECH_CONFIG_LIST | 通过DNS获取的ECHConfigList无法解析。 | 867| ARKWEB_ERR_ECH_NOT_NEGOTIATED | 已启用ECH(Encrypted Client Hello,加密客户端Hello),但服务器无法解密加密的ClientHello。 | 868| ARKWEB_ERR_ECH_FALLBACK_CERTIFICATE_INVALID | ECH(Encrypted Client Hello)已启用,但服务器无法解密加密的ClientHello,并且没有提供对公共名称有效的证书。 | 869| ARKWEB_ERR_CERT_COMMON_NAME_INVALID | 服务器响应了一个证书,其通用名称与主机名不匹配。这可能意味着:1. 攻击者已将我们的流量重定向到他们的服务器,并呈现了一个他们知道私钥的证书。<br/>1. 服务器配置错误,响应了错误的证书。3. 用户处于无线网络中,被重定向到网络的登录页面。4. 操作系统使用了DNS搜索后缀,而服务器没有为地址栏中的缩写名称提供证书。 | 870| ARKWEB_ERR_CERT_DATE_INVALID | 服务器以证书作为响应,但根据我们的时钟,该证书似乎尚未生效或已过期。这可能是以下情况之一:1. 攻击者提供了旧的证书,并设法获取了私钥。2. 服务器配置错误,没有提供有效的证书。3. 我们的时钟错误。 | 871| ARKWEB_ERR_CERT_AUTHORITY_INVALID | 服务器回应了一个由我们不信任的机构签名的证书。这可能意味着:1. 攻击者已经将真实的证书替换为包含其公钥并由其同伙签名的证书。<br/>1. 服务器运营商拥有一个来自我们不了解但应该信任的CA的合法证书。3. 服务器正在展示一个自签名证书,这无法抵御活跃攻击者(但可以挫败被动攻击者)。 | 872| ARKWEB_ERR_CERT_CONTAINS_ERRORS | 服务器返回的证书包含错误。此错误无法恢复。MSDN对此错误的描述如下:"SSL证书包含错误。"注意:目前尚不清楚这与ERR_CERT_INVALID有何不同。 为了保持一致性,从现在开始,请使用ERR_CERT_INVALID代码代替此代码。 | 873| ARKWEB_ERR_CERT_NO_REVOCATION_MECHANISM | 该证书没有用于确定其是否被吊销的机制。实际上,此证书无法被吊销。 | 874| ARKWEB_ERR_CERT_UNABLE_TO_CHECK_REVOCATION | 此站点的安全证书的吊销信息不可用。这可能意味着:1. 攻击者已破解证书中的私钥,并阻止了我们尝试查明证书已被吊销的操作。2. 证书未被吊销,但吊销服务器繁忙或不可用。 | 875| ARKWEB_ERR_CERT_REVOKED | 服务器响应的证书已被吊销。我们有能力忽略此错误,但这可能不是正确的做法。 | 876| ARKWEB_ERR_CERT_INVALID | 服务器以无效的证书进行了响应。这个错误无法恢复。MSDN描述此错误如下:"SSL证书无效。" | 877| ARKWEB_ERR_CERT_WEAK_SIGNATURE_ALGORITHM | 服务器使用弱签名算法签名的证书进行了响应。 | 878| ARKWEB_ERR_CERT_NON_UNIQUE_NAME | 证书中指定的主机名不是唯一的。 | 879| ARKWEB_ERR_CERT_WEAK_KEY | 服务器响应了一个包含弱密钥(例如,太小的RSA密钥)的证书。 | 880| ARKWEB_ERR_CERT_NAME_CONSTRAINT_VIOLATION | 证书中声明的DNS名称违反了名称约束。 | 881| ARKWEB_ERR_CERT_VALIDITY_TOO_LONG | 证书的有效期太长。 | 882| ARKWEB_ERR_CERTIFICATE_TRANSPARENCY_REQUIRED | 此连接需要证书透明度,但服务器未提供符合策略的CT信息。 | 883| ARKWEB_ERR_CERT_SYMANTEC_LEGACY | 证书链接到不再受信任的旧版Symantec根证书。 | 884| ARKWEB_ERR_CERT_KNOWN_INTERCEPTION_BLOCKED | 已知该证书被除设备所有者之外的其他实体拦截。 | 885| ARKWEB_ERR_SSL_OBSOLETE_VERSION_OR_CIPHER | 连接使用了SSL/TLS或加密算法的过时版本。 | 886| ARKWEB_ERR_CERT_END | 紧接在最后一个证书错误代码之后的值。 | 887| ARKWEB_ERR_INVALID_URL | URL无效。 | 888| ARKWEB_ERR_DISALLOWED_URL_SCHEME | URL的scheme不被允许。 | 889| ARKWEB_ERR_UNKNOWN_URL_SCHEME | 该URL的scheme未知。 | 890| ARKWEB_ERR_INVALID_REDIRECT | 尝试加载一个URL导致重定向到一个无效的URL。 | 891| ARKWEB_ERR_TOO_MANY_REDIRECTS | 尝试加载一个URL时发生了太多次重定向。 | 892| ARKWEB_ERR_UNSAFE_REDIRECT | 尝试加载某个URL时出现了不安全的重定向(例如,重定向到file://被视为不安全)。 | 893| ARKWEB_ERR_UNSAFE_PORT | 尝试加载带有不安全端口号的URL。 | 894| ARKWEB_ERR_INVALID_RESPONSE | 服务器的响应无效。 | 895| ARKWEB_ERR_INVALID_CHUNKED_ENCODING | 块传输编码中出现错误。 | 896| ARKWEB_ERR_METHOD_UNSUPPORTED | 服务器不支持该请求方法。 | 897| ARKWEB_ERR_UNEXPECTED_PROXY_AUTH | 响应是407(需要代理身份验证),但我们并没有将请求发送到代理。 | 898| ARKWEB_ERR_EMPTY_RESPONSE | 服务器关闭了连接而没有发送任何数据。 | 899| ARKWEB_ERR_RESPONSE_HEADERS_TOO_BIG | 响应的headers部分过大。 | 900| ARKWEB_ERR_PAC_SCRIPT_FAILED | PAC脚本的执行失败。 | 901| ARKWEB_ERR_REQUEST_RANGE_NOT_SATISFIABLE | 响应是416(请求的范围无法满足,服务器无法满足请求的范围)。 | 902| ARKWEB_ERR_MALFORMED_IDENTITY | 用于身份验证的身份无效。 | 903| ARKWEB_ERR_CONTENT_DECODING_FAILED | 响应体的内容解码失败。 | 904| ARKWEB_ERR_NETWORK_IO_SUSPENDED | 一个操作无法完成,因为所有网络IO都已挂起。 | 905| ARKWEB_ERR_SYN_REPLY_NOT_RECEIVED | 在流上未收到SYN_REPLY就接收到了FLIP数据。 | 906| ARKWEB_ERR_ENCODING_CONVERSION_FAILED | 将响应转换为目标编码失败。 | 907| ARKWEB_ERR_UNRECOGNIZED_FTP_DIRECTORY_LISTING_FORMAT | 服务器发送了一个我们无法理解的FTP目录列表格式。 | 908| ARKWEB_ERR_NO_SUPPORTED_PROXIES | 提供的列表中没有任何受支持的代理。 | 909| ARKWEB_ERR_HTTP2_PROTOCOL_ERROR | 存在一个HTTP/2协议错误。 | 910| ARKWEB_ERR_INVALID_AUTH_CREDENTIALS | 在HTTP认证过程中无法建立凭据。 | 911| ARKWEB_ERR_UNSUPPORTED_AUTH_SCHEME | 尝试了一种此计算机不支持的HTTP身份验证方案。 | 912| ARKWEB_ERR_ENCODING_DETECTION_FAILED | 检测响应的编码失败。 | 913| ARKWEB_ERR_MISSING_AUTH_CREDENTIALS | (GSSAPI)在HTTP身份验证期间没有可用的Kerberos凭据。 | 914| ARKWEB_ERR_UNEXPECTED_SECURITY_LIBRARY_STATUS | 返回了一个意外但已记录的SSPI或GSSAPI状态码。 | 915| ARKWEB_ERR_MISCONFIGURED_AUTH_ENVIRONMENT | 认证环境未正确设置(例如,找不到KDC或主体未知)。 | 916| ARKWEB_ERR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS | 返回了一个未记录的SSPI或GSSAPI状态码。 | 917| ARKWEB_ERR_RESPONSE_BODY_TOO_BIG_TO_DRAIN | HTTP响应太大,无法完全读取。 | 918| ARKWEB_ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH | HTTP响应包含了多个不同的Content-Length响应头。 | 919| ARKWEB_ERR_INCOMPLETE_HTTP2_HEADERS | 已经接收到HTTP/2的响应头,但并非全部——缺失了状态码或版本等响应头,因此我们期望更多的帧来完成它们。 | 920| ARKWEB_ERR_PAC_NOT_IN_DHCP | 无法从DHCP检索PAC URL配置。这可能表明检索DHCP配置失败,或者在DHCP中没有配置PAC URL。 | 921| ARKWEB_ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION | HTTP响应包含多个Content-Disposition响应头。 | 922| ARKWEB_ERR_RESPONSE_HEADERS_MULTIPLE_LOCATION | HTTP响应包含了多个Location响应头。 | 923| ARKWEB_ERR_HTTP2_SERVER_REFUSED_STREAM | HTTP/2服务器在未处理请求的情况下拒绝了请求,并发送了带有错误代码NO_ERROR和低于与请求对应的流ID的Last-Stream-ID的GOAWAY帧, 表明该请求尚未处理,或者发送了带有错误代码REFUSED_STREAM的RST_STREAM帧。客户端可以重试(在不同的连接上)。请参阅RFC7540第8.1.4节。 | 924| ARKWEB_ERR_HTTP2_PING_FAILED | HTTP/2服务器未响应PING消息。 | 925| ARKWEB_ERR_CONTENT_LENGTH_MISMATCH | 当连接关闭时,HTTP响应主体传输的字节数少于Content-Length头中公布的字节数。 | 926| ARKWEB_ERR_INCOMPLETE_CHUNKED_ENCODING | HTTP响应体使用分块编码传输,但在连接关闭时,终止的零长度区块从未被发送。 | 927| ARKWEB_ERR_QUIC_PROTOCOL_ERROR | 存在QUIC协议错误。 | 928| ARKWEB_ERR_RESPONSE_HEADERS_TRUNCATED | HTTP响应头信息被文件结束符(EOF)截断。 | 929| ARKWEB_ERR_QUIC_HANDSHAKE_FAILED | QUIC加密握手失败。这意味着服务器无法读取发送的任何请求,因此它们可能会被重新发送。 | 930| ARKWEB_ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY | 传输安全性不适合HTTP/2版本。 | 931| ARKWEB_ERR_HTTP2_FLOW_CONTROL_ERROR | 对等方违反了HTTP/2流控制。 | 932| ARKWEB_ERR_HTTP2_FRAME_SIZE_ERROR | 对等方发送了大小不正确的HTTP/2帧。 | 933| ARKWEB_ERR_HTTP2_COMPRESSION_ERROR | 压缩HTTP/2响应头信息的解码或编码失败。 | 934| ARKWEB_ERR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION | 请求的代理身份验证没有有效的客户端套接字句柄。 | 935| ARKWEB_ERR_HTTP_1_1_REQUIRED | 在HTTP/2会话中收到HTTP_1_1_REQUIRED错误代码。 | 936| ARKWEB_ERR_PROXY_HTTP_1_1_REQUIRED | 在通过HTTP/2会话代理时收到HTTP_1_1_REQUIRED错误代码。 | 937| ARKWEB_ERR_PAC_SCRIPT_TERMINATED | PAC脚本已终止并必须重新加载。 | 938| ARKWEB_ERR_INVALID_HTTP_RESPONSE | 服务器应返回HTTP/1.x响应,但未返回。而不是将其视为HTTP/0.9,返回此错误。 | 939| ARKWEB_ERR_CONTENT_DECODING_INIT_FAILED | 初始化内容解码失败。 | 940| ARKWEB_ERR_HTTP2_RST_STREAM_NO_ERROR_RECEIVED | 收到带有NO_ERROR错误代码的HTTP/2 RST_STREAM帧。此错误应由HTTP/2代码内部处理,而不应超过SpdyStream层。 | 941| ARKWEB_ERR_HTTP2_PUSHED_STREAM_NOT_AVAILABLE | 请求声明的推送流不再可用。 | 942| ARKWEB_ERR_HTTP2_CLAIMED_PUSHED_STREAM_RESET_BY_SERVER | 已声明推送的流,随后服务器将其重置。发生这种情况时,应该重试请求。 | 943| ARKWEB_ERR_TOO_MANY_RETRIES | 由于身份验证或证书无效,重试次数过多。 | 944| ARKWEB_ERR_HTTP2_STREAM_CLOSED | 在已关闭的流上收到一个HTTP/2帧。 | 945| ARKWEB_ERR_HTTP2_CLIENT_REFUSED_STREAM | 客户端拒绝了一个HTTP/2流。 | 946| ARKWEB_ERR_HTTP2_PUSHED_RESPONSE_DOES_NOT_MATCH | 基于匹配的URL和请求头,一个HTTP/2推送的流被请求所接收,但是推送的响应头并不匹配请求。 | 947| ARKWEB_ERR_HTTP_RESPONSE_CODE_FAILURE | 服务器返回了非2xx的HTTP响应代码。 | 948| ARKWEB_ERR_QUIC_UNKNOWN_CERT_ROOT | 在QUIC连接上展示的证书未链接到已知根证书,并且连接到的原始服务器不在允许未知根证书的域名列表中。 | 949| ARKWEB_ERR_QUIC_GOAWAY_REQUEST_CAN_BE_RETRIED | 已接收到一个GOAWAY帧,表明请求未得到处理,因此可以安全地在不同的连接上重试。 | 950| ARKWEB_ERR_TOO_MANY_ACCEPT_CH_RESTARTS | ACCEPT_CH重启已被触发太多次。 | 951| ARKWEB_ERR_INCONSISTENT_IP_ADDRESS_SPACE | 在相同的请求期间,远程端点的IP地址空间与先前观察到的值不同。任何受影响的请求的缓存条目都应被标记为无效。 | 952| ARKWEB_ERR_CACHED_IP_ADDRESS_SPACE_BLOCKED_BY_LOCAL_NETWORK_ACCESS_POLICY | 缓存的远程端点的IP地址空间被本地网络访问检查所阻止。 | 953| ARKWEB_ERR_CACHE_MISS | 缓存中没有请求的条目。 | 954| ARKWEB_ERR_CACHE_READ_FAILURE | 无法从磁盘缓存中读取。 | 955| ARKWEB_ERR_CACHE_WRITE_FAILURE | 无法写入磁盘缓存。 | 956| ARKWEB_ERR_CACHE_OPERATION_UNSUPPORTED | 此条目不支持此操作。 | 957| ARKWEB_ERR_CACHE_OPEN_FAILURE | 磁盘缓存无法打开此条目。 | 958| ARKWEB_ERR_CACHE_CREATE_FAILURE | 磁盘缓存无法创建此条目。 | 959| ARKWEB_ERR_CACHE_RACE | 多个事务正在竞相创建磁盘缓存条目。 | 960| ARKWEB_ERR_CACHE_CHECKSUM_READ_FAILURE | 缓存无法读取条目上的校验和记录。 | 961| ARKWEB_ERR_CACHE_CHECKSUM_MISMATCH | 缓存发现一个具有无效校验和的条目。 | 962| ARKWEB_ERR_CACHE_LOCK_TIMEOUT | HTTP缓存的内部错误代码。 | 963| ARKWEB_ERR_CACHE_AUTH_FAILURE_AFTER_READ | 在事务读取某些数据后收到质询,但凭据不可用。 | 964| ARKWEB_ERR_CACHE_ENTRY_NOT_SUITABLE | 针对HTTP缓存的一个内部使用的、非标准的错误代码。 | 965| ARKWEB_ERR_CACHE_DOOM_FAILURE | 磁盘缓存无法删除此条目。 | 966| ARKWEB_ERR_CACHE_OPEN_OR_CREATE_FAILURE | 磁盘缓存无法打开或创建此条目。 | 967| ARKWEB_ERR_INSECURE_RESPONSE | 服务器的响应不安全(例如,存在证书错误)。 | 968| ARKWEB_ERR_NO_PRIVATE_KEY_FOR_CERT | 尝试导入客户端证书失败,因为用户的密钥数据库缺少相应的私钥。 | 969| ARKWEB_ERR_ADD_USER_CERT_FAILED | 向操作系统证书数据库添加证书时发生错误。 | 970| ARKWEB_ERR_INVALID_SIGNED_EXCHANGE | 处理已签名的交换时发生错误。 | 971| ARKWEB_ERR_INVALID_WEB_BUNDLE | 处理Web Bundle源时发生错误。 | 972| ARKWEB_ERR_TRUST_TOKEN_OPERATION_FAILED | 执行Trust Tokens协议操作的请求失败(原因包括:预置条件失败、内部错误、不良响应)。 | 973| ARKWEB_ERR_TRUST_TOKEN_OPERATION_SUCCESS_WITHOUT_SENDING_REQUEST | 在处理一个与Trust Tokens协议相关的操作执行请求时,系统能够执行该请求中的Trust Tokens操作,但并没有将请求发送到其指定的目的地。 | 974| ARKWEB_ERR_FTP_FAILED | FTP控制连接命令失败的通用错误。如果可能的话,请使用或添加一个更具体的错误代码。 | 975| ARKWEB_ERR_FTP_SERVICE_UNAVAILABLE | 服务器目前无法满足请求。这是一个临时错误。FTP响应代码421。 | 976| ARKWEB_ERR_FTP_TRANSFER_ABORTED | 服务器已中止传输。FTP响应代码426。 | 977| ARKWEB_ERR_FTP_FILE_BUSY | 文件正在使用中,或在打开文件时发生了一些其他临时错误条件。FTP响应代码450。 | 978| ARKWEB_ERR_FTP_SYNTAX_ERROR | 由于语法错误,服务器拒绝了我们的命令。FTP响应代码500、501。 | 979| ARKWEB_ERR_FTP_COMMAND_UNSUPPORTED | 服务器不支持我们发出的命令。FTP响应代码502、504。 | 980| ARKWEB_ERR_FTP_BAD_COMMAND_SEQUENCE | 服务器拒绝了我们的命令,因为我们没有按照正确的顺序发出命令。FTP响应代码503。 | 981| ARKWEB_ERR_PKCS12_IMPORT_BAD_PASSWORD | 由于密码不正确,PKCS \#12导入失败。 | 982| ARKWEB_ERR_PKCS12_IMPORT_FAILED | 由于其他错误,PKCS \#12导入失败。 | 983| ARKWEB_ERR_IMPORT_CA_CERT_NOT_CA | CA导入失败——不是CA证书。 | 984| ARKWEB_ERR_IMPORT_CERT_ALREADY_EXISTS | 导入失败——数据库中已存在证书。 | 985| ARKWEB_ERR_IMPORT_CA_CERT_FAILED | 由于其他错误,CA导入失败。 | 986| ARKWEB_ERR_IMPORT_SERVER_CERT_FAILED | 由于某些内部错误,服务器证书导入失败。 | 987| ARKWEB_ERR_PKCS12_IMPORT_INVALID_MAC | PKCS \#12导入失败,因为MAC(消息认证码)无效。 | 988| ARKWEB_ERR_PKCS12_IMPORT_INVALID_FILE | PKCS \#12导入失败,因为文件无效或已损坏。 | 989| ARKWEB_ERR_PKCS12_IMPORT_UNSUPPORTED | 由于不支持的特性,PKCS \#12导入失败。 | 990| ARKWEB_ERR_KEY_GENERATION_FAILED | 密钥生成失败。 | 991| ARKWEB_ERR_PRIVATE_KEY_EXPORT_FAILED | 无法导出私钥。 | 992| ARKWEB_ERR_SELF_SIGNED_CERT_GENERATION_FAILED | 自签名证书生成失败。 | 993| ARKWEB_ERR_CERT_DATABASE_CHANGED | 证书数据库已发生某种更改。 | 994| ARKWEB_ERR_CERT_VERIFIER_CHANGED | 证书验证配置已发生某种更改。 | 995| ARKWEB_ERR_DNS_MALFORMED_RESPONSE | DNS解析程序收到格式错误的响应。 | 996| ARKWEB_ERR_DNS_SERVER_REQUIRES_TCP | DNS服务器需要TCP。 | 997| ARKWEB_ERR_DNS_SERVER_FAILED | DNS服务器失败。对于以下所有错误情况,都会返回此错误:1 - 格式错误 - 名称服务器无法解释查询。 2 - 服务器故障 - 名称服务器由于自身问题无法处理这个查询。4 - 未实现 - 名称服务器不支持请求的查询类型。 5 - 拒绝 - 名称服务器出于策略原因拒绝执行指定的操作。 | 998| ARKWEB_ERR_DNS_TIMED_OUT | DNS事务超时。 | 999| ARKWEB_ERR_DNS_CACHE_MISS | 对于只查询本地源的查找,在缓存或其他本地源中未找到该条目。 | 1000| ARKWEB_ERR_DNS_SEARCH_EMPTY | 后缀搜索列表规则阻止了给定主机名的解析。 | 1001| ARKWEB_ERR_DNS_SORT_ERROR | 未能根据RFC3484对地址进行排序。 | 1002| ARKWEB_ERR_DNS_SECURE_RESOLVER_HOSTNAME_RESOLUTION_FAILED | 未能解析DNS-over-HTTPS服务器的主机名。 | 1003| ARKWEB_ERR_DNS_NAME_HTTPS_ONLY | DNS已识别请求因不安全的连接(http/ws)而被禁止。应用程序应该像处理HTTP重定向一样处理这个错误,将连接重定向到安全的https或wss。 | 1004| ARKWEB_ERR_DNS_REQUEST_CANCELED | 与此任务相关的所有DNS请求已被取消。 | 1005| ARKWEB_ERR_DNS_NO_MATCHING_SUPPORTED_ALPN | HTTPS记录的主机名解析预期未能使用受支持协议的ALPN值进行解析。 | 1006 1007 1008### ArkWeb_ResourceType 1009 1010``` 1011enum ArkWeb_ResourceType 1012``` 1013**描述:** 1014 1015请求的资源类型。 1016 1017这些常量与Chromium中的ResourceType的对应项相匹配,不应重新编号。 1018 1019**系统能力:** SystemCapability.Web.Webview.Core 1020 1021**起始版本:** 12 1022 1023| 枚举值 | 描述 | 1024| -------- | -------- | 1025| MAIN_FRAME | 顶层页面。 | 1026| SUB_FRAME | Frame或Iframe。 | 1027| STYLE_SHEET | CSS样式表。 | 1028| SCRIPT | 外部脚本。 | 1029| IMAGE | 图片(jpg/gif/png/以及其他)。 | 1030| FONT_RESOURCE | 字体。 | 1031| SUB_RESOURCE | 其他子资源。如果实际类型未知,则是默认类型。 | 1032| OBJECT | 插件的Object(或embed)标签,或者插件请求的资源。 | 1033| MEDIA | 媒体资源。 | 1034| WORKER | 专用工作线程的主资源。 | 1035| SHARED_WORKER | 共享工作线程的主资源。 | 1036| PREFETCH | 明确的预取请求。 | 1037| FAVICON | 网站图标。 | 1038| XHR | XMLHttpRequest。 | 1039| PING | /sendBeacon的Ping请求。 | 1040| SERVICE_WORKER | service worker的主资源。 | 1041| CSP_REPORT | 内容安全策略违规报告。 | 1042| PLUGIN_RESOURCE | 插件请求的资源。 | 1043| NAVIGATION_PRELOAD_MAIN_FRAME | 触发service worker预热的主frame跳转请求。 | 1044| NAVIGATION_PRELOAD_SUB_FRAME | 触发service worker预热的子frame跳转请求。 | 1045 1046 1047### ArkWeb_WebMessageType 1048 1049``` 1050enum ArkWeb_WebMessageType 1051``` 1052**描述:** 1053 1054Post Message数据类型。 1055 1056**起始版本:** 12 1057 1058| 枚举值 | 描述 | 1059| -------- | -------- | 1060| ARKWEB_NONE | 错误数据。 | 1061| ARKWEB_STRING | 字符串数据类型。 | 1062| ARKWEB_BUFFER | 字节流数据类型。 | 1063 1064 1065## 函数说明 1066 1067 1068### OH_ArkWeb_ClearSchemeHandlers() 1069 1070``` 1071int32_t OH_ArkWeb_ClearSchemeHandlers (const char * webTag) 1072``` 1073**描述:** 1074 1075清除为指定web注册的SchemeHandler。 1076 1077**系统能力:** SystemCapability.Web.Webview.Core 1078 1079**起始版本:** 12 1080 1081**参数:** 1082 1083| 名称 | 描述 | 1084| -------- | -------- | 1085| webTag | Web组件的标签名称,用于标识某个唯一组件,由开发者来保证名称唯一性。 | 1086 1087**返回:** 1088 1089如果返回0,表示成功;返回17100101,表示参数无效。 1090 1091 1092### OH_ArkWeb_CreateResponse() 1093 1094``` 1095void OH_ArkWeb_CreateResponse (ArkWeb_Response ** response) 1096``` 1097**描述:** 1098 1099为被拦截的请求创建一个ArkWeb_Response对象。 1100 1101**系统能力:** SystemCapability.Web.Webview.Core 1102 1103**起始版本:** 12 1104 1105**参数:** 1106 1107| 名称 | 描述 | 1108| -------- | -------- | 1109| response | 返回创建的ArkWeb_Response。在不需要时使用OH_ArkWeb_DestoryResponse进行销毁。 | 1110 1111 1112### OH_ArkWeb_CreateSchemeHandler() 1113 1114``` 1115void OH_ArkWeb_CreateSchemeHandler (ArkWeb_SchemeHandler ** schemeHandler) 1116``` 1117**描述:** 1118 1119创建一个ArkWeb_SchemeHandler对象。 1120 1121**系统能力:** SystemCapability.Web.Webview.Core 1122 1123**起始版本:** 12 1124 1125**参数:** 1126 1127| 名称 | 描述 | 1128| -------- | -------- | 1129| schemeHandler | 返回创建的ArkWeb_SchemeHandler。在不需要时使用OH_ArkWeb_DestoryschemeHandler销毁它。 | 1130 1131 1132### OH_ArkWeb_DestroyResponse() 1133 1134``` 1135void OH_ArkWeb_DestroyResponse (ArkWeb_Response * response) 1136``` 1137**描述:** 1138 1139销毁一个ArkWeb_Response对象。 1140 1141**系统能力:** SystemCapability.Web.Webview.Core 1142 1143**起始版本:** 12 1144 1145**参数:** 1146 1147| 名称 | 描述 | 1148| -------- | -------- | 1149| response | 待销毁的ArkWeb_Response。 | 1150 1151 1152### OH_ArkWeb_DestroySchemeHandler() 1153 1154``` 1155void OH_ArkWeb_DestroySchemeHandler (ArkWeb_SchemeHandler * schemeHandler) 1156``` 1157**描述:** 1158 1159销毁一个ArkWeb_SchemeHandler对象。 1160 1161**系统能力:** SystemCapability.Web.Webview.Core 1162 1163**起始版本:** 12 1164 1165**参数:** 1166 1167| 名称 | 描述 | 1168| -------- | -------- | 1169| schemeHandler | 待销毁的ArkWeb_SchemeHandler。 | 1170 1171 1172### OH_ArkWeb_GetNativeAPI() 1173 1174``` 1175ArkWeb_AnyNativeAPI* OH_ArkWeb_GetNativeAPI (ArkWeb_NativeAPIVariantKind type) 1176``` 1177**描述:** 1178 1179根据传入的API类型,获取对应的Native API结构体。 1180 1181**系统能力:** SystemCapability.Web.Webview.Core 1182 1183**起始版本:** 12 1184 1185**参数:** 1186 1187| 名称 | 描述 | 1188| -------- | -------- | 1189| type | ArkWeb支持的Native API类型。 | 1190 1191**返回:** 1192 1193根据传入的API类型,返回对应的Native API结构体指针,结构体第一个成员为当前结构体的大小。 1194 1195 1196### OH_ArkWeb_RegisterCustomSchemes() 1197 1198``` 1199int32_t OH_ArkWeb_RegisterCustomSchemes (const char * scheme, int32_t option ) 1200``` 1201**描述:** 1202 1203将custom scheme注册到ArkWeb。 1204 1205对于内置的HTTP、HTTPS、FILE、FTP、ABOUT和DATA协议,不应调用此函数。 1206 1207此函数应在主线程上调用并且需要在内核初始化之前调用。 1208 1209**系统能力:** SystemCapability.Web.Webview.Core 1210 1211**起始版本:** 12 1212 1213**参数:** 1214 1215| 名称 | 描述 | 1216| -------- | -------- | 1217| scheme | 待注册的scheme。 | 1218| option | scheme的配置(行为)。 | 1219 1220**返回:** 1221 1222如果返回0,表示成功;返回17100100,表示未知错误;返回17100101,表示参数无效;返回17100102,表示注册scheme的配置失败,应该在创建ArkWeb之前注册。 1223 1224 1225### OH_ArkWeb_ReleaseByteArray() 1226 1227``` 1228void OH_ArkWeb_ReleaseByteArray (uint8_t * byteArray) 1229``` 1230**描述:** 1231 1232释放由NDK接口创建的字节数组。 1233 1234**系统能力:** SystemCapability.Web.Webview.Core 1235 1236**起始版本:** 12 1237 1238**参数:** 1239 1240| 名称 | 描述 | 1241| -------- | -------- | 1242| byteArray | 待释放的字节数组。 | 1243 1244 1245### OH_ArkWeb_ReleaseString() 1246 1247``` 1248void OH_ArkWeb_ReleaseString (char * string) 1249``` 1250**描述:** 1251 1252释放由NDK接口创建的字符串 1253 1254**系统能力:** SystemCapability.Web.Webview.Core 1255 1256**起始版本:** 12 1257 1258**参数:** 1259 1260| 名称 | 描述 | 1261| -------- | -------- | 1262| string | 待释放的字符串。 | 1263 1264 1265### OH_ArkWeb_SetSchemeHandler() 1266 1267``` 1268bool OH_ArkWeb_SetSchemeHandler (const char * scheme, const char * webTag, ArkWeb_SchemeHandler * schemeHandler ) 1269``` 1270**描述:** 1271 1272为指定scheme设置一个ArkWeb_SchemeHandler以拦截该scheme类型的请求。 1273 1274应该在创建BrowserContext之后设置SchemeHandler。 1275 1276可以使用WebviewController.initializeWebEngine来初始化BrowserContext而无需创建ArkWeb。 1277 1278**系统能力:** SystemCapability.Web.Webview.Core 1279 1280**起始版本:** 12 1281 1282**参数:** 1283 1284| 名称 | 描述 | 1285| -------- | -------- | 1286| scheme | 需要被拦截的scheme。 | 1287| webTag | Web组件的标签名称,用于标识某个唯一组件,由开发者来保证名称唯一性。 | 1288| schemeHandler | 该scheme的拦截器ArkWeb_SchemeHandler。只有从指定web触发的请求才会通过这个schemeHandler进行通知。 | 1289 1290**返回:** 1291 1292如果为指定scheme设置SchemeHandler成功,则返回true,否则返回false。 1293 1294 1295### OH_ArkWebHttpBodyStream_GetPosition() 1296 1297``` 1298uint64_t OH_ArkWebHttpBodyStream_GetPosition (const ArkWeb_HttpBodyStream * httpBodyStream) 1299``` 1300**描述:** 1301 1302获取httpBodyStream当前的读取位置。 1303 1304**系统能力:** SystemCapability.Web.Webview.Core 1305 1306**起始版本:** 12 1307 1308**参数:** 1309 1310| 名称 | 描述 | 1311| -------- | -------- | 1312| httpBodyStream | ArkWeb_HttpBodyStream。 | 1313 1314**返回:** 1315 1316httpBodyStream当前的读取位置。如果httpBodyStream无效,则位置为0。 1317 1318 1319### OH_ArkWebHttpBodyStream_GetSize() 1320 1321``` 1322uint64_t OH_ArkWebHttpBodyStream_GetSize (const ArkWeb_HttpBodyStream * httpBodyStream) 1323``` 1324**描述:** 1325 1326获取httpBodyStream的大小。 1327 1328当数据以分块的形式传输或httpBodyStream无效时,始终返回0。 1329 1330**系统能力:** SystemCapability.Web.Webview.Core 1331 1332**起始版本:** 12 1333 1334**参数:** 1335 1336| 名称 | 描述 | 1337| -------- | -------- | 1338| httpBodyStream | ArkWeb_HttpBodyStream。 | 1339 1340**返回:** 1341 1342httpBodyStream的大小。 1343 1344 1345### OH_ArkWebHttpBodyStream_GetUserData() 1346 1347``` 1348void* OH_ArkWebHttpBodyStream_GetUserData (const ArkWeb_HttpBodyStream * httpBodyStream) 1349``` 1350**描述:** 1351 1352从ArkWeb_HttpBodyStream获取用户数据。 1353 1354**系统能力:** SystemCapability.Web.Webview.Core 1355 1356**起始版本:** 12 1357 1358**参数:** 1359 1360| 名称 | 描述 | 1361| -------- | -------- | 1362| httpBodyStream | ArkWeb_HttpBodyStream。 | 1363 1364**返回:** 1365 1366设置的用户数据。 1367 1368 1369### OH_ArkWebHttpBodyStream_Init() 1370 1371``` 1372int32_t OH_ArkWebHttpBodyStream_Init (ArkWeb_HttpBodyStream * httpBodyStream, ArkWeb_HttpBodyStreamInitCallback initCallback ) 1373``` 1374**描述:** 1375 1376初始化ArkWeb_HttpBodyStream。 1377 1378在调用任何其他函数之前,必须调用此函数。该接口需要在IO线程调用。 1379 1380**系统能力:** SystemCapability.Web.Webview.Core 1381 1382**起始版本:** 12 1383 1384**参数:** 1385 1386| 名称 | 描述 | 1387| -------- | -------- | 1388| httpBodyStream | ArkWeb_HttpBodyStream。 | 1389| initCallback | 初始化的回调函数。 | 1390 1391**返回:** 1392 1393如果返回0,表示成功;返回17100101,表示参数无效。 1394 1395 1396### OH_ArkWebHttpBodyStream_IsChunked() 1397 1398``` 1399bool OH_ArkWebHttpBodyStream_IsChunked (const ArkWeb_HttpBodyStream * httpBodyStream) 1400``` 1401**描述:** 1402 1403获取httpBodyStream是否采用分块传输。 1404 1405**系统能力:** SystemCapability.Web.Webview.Core 1406 1407**起始版本:** 12 1408 1409**参数:** 1410 1411| 名称 | 描述 | 1412| -------- | -------- | 1413| httpBodyStream | ArkWeb_HttpBodyStream。 | 1414 1415**返回:** 1416 1417如果采用分块传输则返回true;否则返回false。 1418 1419 1420### OH_ArkWebHttpBodyStream_IsEof() 1421 1422``` 1423bool OH_ArkWebHttpBodyStream_IsEof (const ArkWeb_HttpBodyStream * httpBodyStream) 1424``` 1425**描述:** 1426 1427如果httpBodyStream中的所有数据都已被读取,则返回true。 1428 1429对于分块传输类型的httpBodyStream,在第一次读取尝试之前返回false。 1430 1431**系统能力:** SystemCapability.Web.Webview.Core 1432 1433**起始版本:** 12 1434 1435**参数:** 1436 1437| 名称 | 描述 | 1438| -------- | -------- | 1439| httpBodyStream | ArkWeb_HttpBodyStream。 | 1440 1441**返回:** 1442 1443如果所有数据都已被读取则返回true;否则返回false。 1444 1445 1446### OH_ArkWebHttpBodyStream_IsInMemory() 1447 1448``` 1449bool OH_ArkWebHttpBodyStream_IsInMemory (const ArkWeb_HttpBodyStream * httpBodyStream) 1450``` 1451**描述:** 1452 1453如果httpBodyStream中的上传数据完全在内存中,并且所有读取请求都将同步成功,则返回true。 1454 1455对于分块传输类型的数据,预期返回false。 1456 1457**系统能力:** SystemCapability.Web.Webview.Core 1458 1459**起始版本:** 12 1460 1461**参数:** 1462 1463| 名称 | 描述 | 1464| -------- | -------- | 1465| httpBodyStream | ArkWeb_HttpBodyStream。 | 1466 1467**返回:** 1468 1469如果上传数据完全在内存中则返回true;否则返回false。 1470 1471 1472### OH_ArkWebHttpBodyStream_Read() 1473 1474``` 1475void OH_ArkWebHttpBodyStream_Read (const ArkWeb_HttpBodyStream * httpBodyStream, uint8_t * buffer, int bufLen ) 1476``` 1477**描述:** 1478 1479将请求的上传数据读取到buffer。 1480 1481buffer的大小必须大于bufLen。我们将从工作线程读取数据到buffer,因此在回调函数返回之前,不应在其他线程中使用buffer,以避免并发问题。 1482 1483**系统能力:** SystemCapability.Web.Webview.Core 1484 1485**起始版本:** 12 1486 1487**参数:** 1488 1489| 名称 | 描述 | 1490| -------- | -------- | 1491| httpBodyStream | ArkWeb_HttpBodyStream。 | 1492| buffer | 接收数据的buffer。 | 1493| bufLen | 要读取的字节的大小。 | 1494 1495 1496### OH_ArkWebHttpBodyStream_SetReadCallback() 1497 1498``` 1499int32_t OH_ArkWebHttpBodyStream_SetReadCallback (ArkWeb_HttpBodyStream * httpBodyStream, ArkWeb_HttpBodyStreamReadCallback readCallback ) 1500``` 1501**描述:** 1502 1503为OH_ArkWebHttpBodyStream_Read设置回调函数。 1504 1505OH_ArkWebHttpBodyStream_Read的结果将通过readCallback通知给调用者。 1506 1507该回调函数将在与OH_ArkWebHttpBodyStream_Read相同的线程中运行。 1508 1509**系统能力:** SystemCapability.Web.Webview.Core 1510 1511**起始版本:** 12 1512 1513**参数:** 1514 1515| 名称 | 描述 | 1516| -------- | -------- | 1517| httpBodyStream | ArkWeb_HttpBodyStream。 | 1518| readCallback | OH_ArkWebHttpBodyStream_Read的回调函数。 | 1519 1520**返回:** 1521 1522如果返回0,表示成功;返回17100101,表示参数无效。 1523 1524 1525### OH_ArkWebHttpBodyStream_SetUserData() 1526 1527``` 1528int32_t OH_ArkWebHttpBodyStream_SetUserData (ArkWeb_HttpBodyStream * httpBodyStream, void * userData ) 1529``` 1530**描述:** 1531 1532将一个用户数据设置到ArkWeb_HttpBodyStream对象中。 1533 1534**系统能力:** SystemCapability.Web.Webview.Core 1535 1536**起始版本:** 12 1537 1538**参数:** 1539 1540| 名称 | 描述 | 1541| -------- | -------- | 1542| httpBodyStream | ArkWeb_HttpBodyStream。 | 1543| userData | 要设置的用户数据。 | 1544 1545**返回:** 1546 1547如果返回0,表示成功;返回17100101,表示参数无效。 1548 1549 1550### OH_ArkWebRequestHeaderList_Destroy() 1551 1552``` 1553void OH_ArkWebRequestHeaderList_Destroy (ArkWeb_RequestHeaderList * requestHeaderList) 1554``` 1555**描述:** 1556 1557销毁ArkWeb_RequestHeaderList对象。 1558 1559**系统能力:** SystemCapability.Web.Webview.Core 1560 1561**起始版本:** 12 1562 1563**参数:** 1564 1565| 名称 | 描述 | 1566| -------- | -------- | 1567| requestHeaderList | 将被销毁的ArkWeb_RequestHeaderList。 | 1568 1569### OH_ArkWebRequestHeaderList_GetHeader() 1570 1571``` 1572void OH_ArkWebRequestHeaderList_GetHeader (const ArkWeb_RequestHeaderList * requestHeaderList, int32_t index, char ** key, char ** value ) 1573``` 1574**描述:** 1575 1576获取指定的请求头。 1577 1578**系统能力:** SystemCapability.Web.Webview.Core 1579 1580**起始版本:** 12 1581 1582**参数:** 1583 1584| 名称 | 描述 | 1585| -------- | -------- | 1586| requestHeaderList | 请求头列表。 | 1587| index | 请求头的索引。 | 1588| key | 请求头的键(key)。调用者必须使用OH_ArkWeb_ReleaseString函数来释放这个字符串。 | 1589| value | 请求头的值(value)。调用者必须使用OH_ArkWeb_ReleaseString函数来释放这个字符串。 | 1590 1591 1592### OH_ArkWebRequestHeaderList_GetSize() 1593 1594``` 1595int32_t OH_ArkWebRequestHeaderList_GetSize (const ArkWeb_RequestHeaderList * requestHeaderList) 1596``` 1597**描述:** 1598 1599获取请求头列表的大小。 1600 1601**系统能力:** SystemCapability.Web.Webview.Core 1602 1603**起始版本:** 12 1604 1605**参数:** 1606 1607| 名称 | 描述 | 1608| -------- | -------- | 1609| requestHeaderList | 请求头的列表。 | 1610 1611**返回:** 1612 1613请求头的大小。如果requestHeaderList无效,则为-1。 1614 1615 1616### OH_ArkWebResourceHandler_Destroy() 1617 1618``` 1619int32_t OH_ArkWebResourceHandler_Destroy (const ArkWeb_ResourceHandler * resourceHandler) 1620``` 1621**描述:** 1622 1623销毁一个ArkWeb_ResourceHandler对象。 1624 1625**系统能力:** SystemCapability.Web.Webview.Core 1626 1627**起始版本:** 12 1628 1629**参数:** 1630 1631| 名称 | 描述 | 1632| -------- | -------- | 1633| resourceHandler | ArkWeb_ResourceHandler。 | 1634 1635**返回:** 1636 1637如果返回0,表示成功;返回17100101,表示参数无效。 1638 1639 1640### OH_ArkWebResourceHandler_DidFailWithError() 1641 1642``` 1643int32_t OH_ArkWebResourceHandler_DidFailWithError (const ArkWeb_ResourceHandler * resourceHandler, ArkWeb_NetError errorCode ) 1644``` 1645**描述:** 1646 1647通知ArkWeb内核被拦截请求应该失败。 1648 1649**系统能力:** SystemCapability.Web.Webview.Core 1650 1651**起始版本:** 12 1652 1653**参数:** 1654 1655| 名称 | 描述 | 1656| -------- | -------- | 1657| resourceHandler | 该请求的ArkWeb_ResourceHandler。 | 1658| errorCode | 该请求的错误码。请参考[arkweb_net_error_list.h](arkweb__net__error__list_8h.md)。 | 1659 1660**返回:** 1661 1662如果返回0,表示成功;返回17100101,表示参数无效。 1663 1664 1665### OH_ArkWebResourceHandler_DidFinish() 1666 1667``` 1668int32_t OH_ArkWebResourceHandler_DidFinish (const ArkWeb_ResourceHandler * resourceHandler) 1669``` 1670**描述:** 1671 1672通知ArkWeb内核被拦截的请求已经完成,并且没有更多的数据可用。 1673 1674**系统能力:** SystemCapability.Web.Webview.Core 1675 1676**起始版本:** 12 1677 1678**参数:** 1679 1680| 名称 | 描述 | 1681| -------- | -------- | 1682| resourceHandler | 该请求的ArkWeb_ResourceHandler。 | 1683 1684**返回:** 1685 1686如果返回0,表示成功;返回17100101,表示参数无效。 1687 1688 1689### OH_ArkWebResourceHandler_DidReceiveData() 1690 1691``` 1692int32_t OH_ArkWebResourceHandler_DidReceiveData (const ArkWeb_ResourceHandler * resourceHandler, const uint8_t * buffer, int64_t bufLen ) 1693``` 1694**描述:** 1695 1696将构造的响应体传递给被拦截的请求。 1697 1698**系统能力:** SystemCapability.Web.Webview.Core 1699 1700**起始版本:** 12 1701 1702**参数:** 1703 1704| 名称 | 描述 | 1705| -------- | -------- | 1706| resourceHandler | 该请求的ArkWeb_ResourceHandler。 | 1707| buffer | 要发送的buffer数据。 | 1708| bufLen | buffer的大小。 | 1709 1710**返回:** 1711 1712如果返回0,表示成功;返回17100101,表示参数无效。 1713 1714 1715### OH_ArkWebResourceHandler_DidReceiveResponse() 1716 1717``` 1718int32_t OH_ArkWebResourceHandler_DidReceiveResponse (const ArkWeb_ResourceHandler * resourceHandler, const ArkWeb_Response * response ) 1719``` 1720**描述:** 1721 1722将构造的响应头传递给被拦截的请求。 1723 1724**系统能力:** SystemCapability.Web.Webview.Core 1725 1726**起始版本:** 12 1727 1728**参数:** 1729 1730| 名称 | 描述 | 1731| -------- | -------- | 1732| resourceHandler | 该请求的ArkWeb_ResourceHandler。 | 1733| response | 该拦截请求的ArkWeb_Response。 | 1734 1735**返回:** 1736 1737如果返回0,表示成功;返回17100101,表示参数无效。 1738 1739 1740### OH_ArkWebResourceRequest_Destroy() 1741 1742``` 1743int32_t OH_ArkWebResourceRequest_Destroy (const ArkWeb_ResourceRequest * resourceRequest) 1744``` 1745**描述:** 1746 1747销毁ArkWeb_ResourceRequest对象。 1748 1749**系统能力:** SystemCapability.Web.Webview.Core 1750 1751**起始版本:** 12 1752 1753**参数:** 1754 1755| 名称 | 描述 | 1756| -------- | -------- | 1757| resourceRequest | ArkWeb_ResourceRequest。 | 1758 1759**返回:** 1760 1761如果返回0,表示成功;返回17100101,表示参数无效。 1762 1763 1764### OH_ArkWebResourceRequest_DestroyHttpBodyStream() 1765 1766``` 1767void OH_ArkWebResourceRequest_DestroyHttpBodyStream (ArkWeb_HttpBodyStream * httpBodyStream) 1768``` 1769**描述:** 1770 1771销毁ArkWeb_HttpBodyStream对象。 1772 1773**系统能力:** SystemCapability.Web.Webview.Core 1774 1775**起始版本:** 12 1776 1777**参数:** 1778 1779| 名称 | 描述 | 1780| -------- | -------- | 1781| httpBodyStream | 待销毁的httpBodyStream。 | 1782 1783 1784### OH_ArkWebResourceRequest_GetFrameUrl() 1785 1786``` 1787void OH_ArkWebResourceRequest_GetFrameUrl (const ArkWeb_ResourceRequest * resourceRequest, char ** frameUrl ) 1788``` 1789**描述:** 1790 1791获取触发此请求的Frame的URL。 1792 1793**系统能力:** SystemCapability.Web.Webview.Core 1794 1795**起始版本:** 12 1796 1797**参数:** 1798 1799| 名称 | 描述 | 1800| -------- | -------- | 1801| resourceRequest | ArkWeb_ResourceRequest。 | 1802| frameUrl | 触发此请求的Frame的URL。此函数将为URL字符串分配内存,并且调用者必须通过OH_ArkWeb_ReleaseString来释放该字符串。 | 1803 1804 1805### OH_ArkWebResourceRequest_GetHttpBodyStream() 1806 1807``` 1808void OH_ArkWebResourceRequest_GetHttpBodyStream (const ArkWeb_ResourceRequest * resourceRequest, ArkWeb_HttpBodyStream ** httpBodyStream ) 1809``` 1810**描述:** 1811 1812创建一个ArkWeb_HttpBodyStream,用于读取请求的上传数据。 1813 1814**系统能力:** SystemCapability.Web.Webview.Core 1815 1816**起始版本:** 12 1817 1818**参数:** 1819 1820| 名称 | 描述 | 1821| -------- | -------- | 1822| resourceRequest | ArkWeb_ResourceRequest。 | 1823| httpBodyStream | 请求的上传数据。此函数将为httpBodyStream分配内存, 调用者必须使用OH_ArkWebResourceRequest_DestroyHttpBodyStream释放httpBodyStream。 | 1824 1825 1826### OH_ArkWebResourceRequest_GetMethod() 1827 1828``` 1829void OH_ArkWebResourceRequest_GetMethod (const ArkWeb_ResourceRequest * resourceRequest, char ** method ) 1830``` 1831**描述:** 1832 1833获取请求的method。 1834 1835**系统能力:** SystemCapability.Web.Webview.Core 1836 1837**起始版本:** 12 1838 1839**参数:** 1840 1841| 名称 | 描述 | 1842| -------- | -------- | 1843| resourceRequest | ArkWeb_ResourceRequest。 | 1844| method | HTTP请求方法。此函数将为method字符串分配内存,调用者必须使用OH_ArkWeb_ReleaseString释放字符串。 | 1845 1846 1847### OH_ArkWebResourceRequest_GetReferrer() 1848 1849``` 1850void OH_ArkWebResourceRequest_GetReferrer (const ArkWeb_ResourceRequest * resourceRequest, char ** referrer ) 1851``` 1852**描述:** 1853 1854获取请求的Referrer。 1855 1856**系统能力:** SystemCapability.Web.Webview.Core 1857 1858**起始版本:** 12 1859 1860**参数:** 1861 1862| 名称 | 描述 | 1863| -------- | -------- | 1864| resourceRequest | ArkWeb_ResourceRequest。 | 1865| referrer | 请求的Referrer。此函数将为referrer字符串分配内存,调用者必须使用 OH_ArkWeb_ReleaseString 释放该字符串。 | 1866 1867 1868### OH_ArkWebResourceRequest_GetRequestHeaders() 1869 1870``` 1871void OH_ArkWebResourceRequest_GetRequestHeaders (const ArkWeb_ResourceRequest * resourceRequest, ArkWeb_RequestHeaderList ** requestHeaderList ) 1872``` 1873**描述:** 1874 1875获取请求的请求头列表OH_ArkWeb_RequestHeaderList。 1876 1877**系统能力:** SystemCapability.Web.Webview.Core 1878 1879**起始版本:** 12 1880 1881**参数:** 1882 1883| 名称 | 描述 | 1884| -------- | -------- | 1885| resourceRequest | ArkWeb_ResourceRequest。 | 1886| requestHeaderList | 请求的请求头列表。 | 1887 1888 1889### OH_ArkWebResourceRequest_GetResourceType() 1890 1891``` 1892int32_t OH_ArkWebResourceRequest_GetResourceType (const ArkWeb_ResourceRequest * resourceRequest) 1893``` 1894**描述:** 1895 1896获取请求的资源类型。 1897 1898**系统能力:** SystemCapability.Web.Webview.Core 1899 1900**起始版本:** 12 1901 1902**参数:** 1903 1904| 名称 | 描述 | 1905| -------- | -------- | 1906| resourceRequest | ArkWeb_ResourceRequest。 | 1907 1908**返回:** 1909 1910请求的资源类型。如果resourceRequest无效,则为-1。 1911 1912 1913### OH_ArkWebResourceRequest_GetUrl() 1914 1915``` 1916void OH_ArkWebResourceRequest_GetUrl (const ArkWeb_ResourceRequest * resourceRequest, char ** url ) 1917``` 1918**描述:** 1919 1920获取请求的url。 1921 1922**系统能力:** SystemCapability.Web.Webview.Core 1923 1924**起始版本:** 12 1925 1926**参数:** 1927 1928| 名称 | 描述 | 1929| -------- | -------- | 1930| resourceRequest | ArkWeb_ResourceRequest。 | 1931| url | 请求的URL。此函数将为URL字符串分配内存,调用者必须通过OH_ArkWeb_ReleaseString释放该字符串。 | 1932 1933 1934### OH_ArkWebResourceRequest_GetUserData() 1935 1936``` 1937void* OH_ArkWebResourceRequest_GetUserData (const ArkWeb_ResourceRequest * resourceRequest) 1938``` 1939**描述:** 1940 1941从ArkWeb_ResourceRequest获取用户数据。 1942 1943**系统能力:** SystemCapability.Web.Webview.Core 1944 1945**起始版本:** 12 1946 1947**参数:** 1948 1949| 名称 | 描述 | 1950| -------- | -------- | 1951| resourceRequest | ArkWeb_ResourceRequest。 | 1952 1953**返回:** 1954 1955设置的用户数据。 1956 1957 1958### OH_ArkWebResourceRequest_HasGesture() 1959 1960``` 1961bool OH_ArkWebResourceRequest_HasGesture (const ArkWeb_ResourceRequest * resourceRequest) 1962``` 1963**描述:** 1964 1965判断这是否是一个由用户手势触发的请求。 1966 1967**系统能力:** SystemCapability.Web.Webview.Core 1968 1969**起始版本:** 12 1970 1971**参数:** 1972 1973| 名称 | 描述 | 1974| -------- | -------- | 1975| resourceRequest | ArkWeb_ResourceRequest。 | 1976 1977**返回:** 1978 1979如果这是由用户手势触发的,则返回true;否则返回false。 1980 1981 1982### OH_ArkWebResourceRequest_IsMainFrame() 1983 1984``` 1985bool OH_ArkWebResourceRequest_IsMainFrame (const ArkWeb_ResourceRequest * resourceRequest) 1986``` 1987**描述:** 1988 1989判断这是否是主框架文档资源的请求。 1990 1991**系统能力:** SystemCapability.Web.Webview.Core 1992 1993**起始版本:** 12 1994 1995**参数:** 1996 1997| 名称 | 描述 | 1998| -------- | -------- | 1999| resourceRequest | ArkWeb_ResourceRequest。 | 2000 2001**返回:** 2002 2003如果这是来自主框架,则返回true;否则返回false。 2004 2005 2006### OH_ArkWebResourceRequest_IsRedirect() 2007 2008``` 2009bool OH_ArkWebResourceRequest_IsRedirect (const ArkWeb_ResourceRequest * resourceRequest) 2010``` 2011**描述:** 2012 2013判断这是否是一个重定向请求。 2014 2015**系统能力:** SystemCapability.Web.Webview.Core 2016 2017**起始版本:** 12 2018 2019**参数:** 2020 2021| 名称 | 描述 | 2022| -------- | -------- | 2023| resourceRequest | ArkWeb_ResourceRequest。 | 2024 2025**返回:** 2026 2027如果这是一个重定向,则返回true;否则返回false。 2028 2029 2030### OH_ArkWebResourceRequest_SetUserData() 2031 2032``` 2033int32_t OH_ArkWebResourceRequest_SetUserData (ArkWeb_ResourceRequest * resourceRequest, void * userData ) 2034``` 2035**描述:** 2036 2037将一个用户数据设置到ArkWeb_ResourceRequest对象中。 2038 2039**系统能力:** SystemCapability.Web.Webview.Core 2040 2041**起始版本:** 12 2042 2043**参数:** 2044 2045| 名称 | 描述 | 2046| -------- | -------- | 2047| resourceRequest | ArkWeb_ResourceRequest。 | 2048| userData | 将要设置的用户数据。 | 2049 2050**返回:** 2051 2052如果返回0,表示成功;返回17100101,表示参数无效。 2053 2054 2055### OH_ArkWebResponse_GetCharset() 2056 2057``` 2058void OH_ArkWebResponse_GetCharset (const ArkWeb_Response * response, char ** charset ) 2059``` 2060**描述:** 2061 2062获取ArkWeb_Response的字符集。 2063 2064**系统能力:** SystemCapability.Web.Webview.Core 2065 2066**起始版本:** 12 2067 2068**参数:** 2069 2070| 名称 | 描述 | 2071| -------- | -------- | 2072| response | ArkWeb_Response。 | 2073| charset | 返回ArkWeb_Response的字符集。此函数将为charset字符串分配内存,调用方必须通过OH_ArkWeb_ReleaseString释放字符串。 | 2074 2075 2076### OH_ArkWebResponse_GetError() 2077 2078``` 2079ArkWeb_NetError OH_ArkWebResponse_GetError (const ArkWeb_Response * response) 2080``` 2081**描述:** 2082 2083获取ArkWeb_Response的错误码。 2084 2085**系统能力:** SystemCapability.Web.Webview.Core 2086 2087**起始版本:** 12 2088 2089**参数:** 2090 2091| 名称 | 描述 | 2092| -------- | -------- | 2093| response | ArkWeb_Response。 | 2094 2095**返回:** 2096 2097ArkWeb_Response的错误码。 2098 2099 2100### OH_ArkWebResponse_GetHeaderByName() 2101 2102``` 2103void OH_ArkWebResponse_GetHeaderByName (const ArkWeb_Response * response, const char * name, char ** value ) 2104``` 2105**描述:** 2106 2107从ArkWeb_Response中获取header。 2108 2109**系统能力:** SystemCapability.Web.Webview.Core 2110 2111**起始版本:** 12 2112 2113**参数:** 2114 2115| 名称 | 描述 | 2116| -------- | -------- | 2117| response | ArkWeb_Response。 | 2118| name | header的名称。 | 2119| value | 返回header的值。此函数将为value字符串分配内存,调用方必须通过OH_ArkWeb_ReleaseString释放该字符串。 | 2120 2121 2122### OH_ArkWebResponse_GetMimeType() 2123 2124``` 2125void OH_ArkWebResponse_GetMimeType (const ArkWeb_Response * response, char ** mimeType ) 2126``` 2127**描述:** 2128 2129获取ArkWeb_Response的媒体类型。 2130 2131**系统能力:** SystemCapability.Web.Webview.Core 2132 2133**起始版本:** 12 2134 2135**参数:** 2136 2137| 名称 | 描述 | 2138| -------- | -------- | 2139| response | ArkWeb_Response。 | 2140| mimeType | 返回ArkWeb_Response的媒体类型。此函数将为mimeType字符串分配内存,调用方必须通过OH_ArkWeb_ReleaseString释放该字符串。 | 2141 2142 2143### OH_ArkWebResponse_GetStatus() 2144 2145``` 2146int OH_ArkWebResponse_GetStatus (const ArkWeb_Response * response) 2147``` 2148**描述:** 2149 2150获取ArkWeb_Response的HTTP状态码。 2151 2152**系统能力:** SystemCapability.Web.Webview.Core 2153 2154**起始版本:** 12 2155 2156**参数:** 2157 2158| 名称 | 描述 | 2159| -------- | -------- | 2160| response | ArkWeb_Response。 | 2161 2162**返回:** 2163 2164ArkWeb_Response的HTTP状态码。如果ArkWeb_Response无效,则为-1。 2165 2166 2167### OH_ArkWebResponse_GetStatusText() 2168 2169``` 2170void OH_ArkWebResponse_GetStatusText (const ArkWeb_Response * response, char ** statusText ) 2171``` 2172**描述:** 2173 2174获取ArkWeb_Response的状态文本。 2175 2176**系统能力:** SystemCapability.Web.Webview.Core 2177 2178**起始版本:** 12 2179 2180**参数:** 2181 2182| 名称 | 描述 | 2183| -------- | -------- | 2184| response | ArkWeb_Response。 | 2185| statusText | 返回ArkWeb_Response的状态文本。此函数将为statusText字符串分配内存,调用方必须通过OH_ArkWeb_ReleaseString释放该字符串。 | 2186 2187 2188### OH_ArkWebResponse_GetUrl() 2189 2190``` 2191void OH_ArkWebResponse_GetUrl (const ArkWeb_Response * response, char ** url ) 2192``` 2193**描述:** 2194 2195获取经过重定向或由于HSTS而更改后的解析URL。 2196 2197**系统能力:** SystemCapability.Web.Webview.Core 2198 2199**起始版本:** 12 2200 2201**参数:** 2202 2203| 名称 | 描述 | 2204| -------- | -------- | 2205| response | ArkWeb_Response。 | 2206| url | 解析后的URL。 | 2207 2208 2209### OH_ArkWebResponse_SetCharset() 2210 2211``` 2212int32_t OH_ArkWebResponse_SetCharset (ArkWeb_Response * response, const char * charset ) 2213``` 2214**描述:** 2215 2216为ArkWeb_Response设置字符集。 2217 2218**系统能力:** SystemCapability.Web.Webview.Core 2219 2220**起始版本:** 12 2221 2222**参数:** 2223 2224| 名称 | 描述 | 2225| -------- | -------- | 2226| response | ArkWeb_Response。 | 2227| charset | 请求的字符集。 | 2228 2229**返回:** 2230 2231如果返回0,表示成功;返回17100101,表示参数无效。 2232 2233 2234### OH_ArkWebResponse_SetError() 2235 2236``` 2237int32_t OH_ArkWebResponse_SetError (ArkWeb_Response * response, ArkWeb_NetError errorCode ) 2238``` 2239**描述:** 2240 2241给ArkWeb_Response对象设置一个错误码。 2242 2243**系统能力:** SystemCapability.Web.Webview.Core 2244 2245**起始版本:** 12 2246 2247**参数:** 2248 2249| 名称 | 描述 | 2250| -------- | -------- | 2251| response | ArkWeb_Response。 | 2252| errorCode | 失败请求的错误码。 | 2253 2254**返回:** 2255 2256如果返回0,表示成功;返回17100101,表示参数无效。 2257 2258 2259### OH_ArkWebResponse_SetHeaderByName() 2260 2261``` 2262int32_t OH_ArkWebResponse_SetHeaderByName (ArkWeb_Response * response, const char * name, const char * value, bool overwrite ) 2263``` 2264**描述:** 2265 2266为ArkWeb_Response设置一个header。 2267 2268**系统能力:** SystemCapability.Web.Webview.Core 2269 2270**起始版本:** 12 2271 2272**参数:** 2273 2274| 名称 | 描述 | 2275| -------- | -------- | 2276| response | ArkWeb_Response。 | 2277| name | header的名称。 | 2278| value | header的值。 | 2279| overwirte | 如果为true,将覆盖现有的header,否则不覆盖。 | 2280 2281**返回:** 2282 2283如果返回0,表示成功;返回17100101,表示参数无效。 2284 2285 2286### OH_ArkWebResponse_SetMimeType() 2287 2288``` 2289int32_t OH_ArkWebResponse_SetMimeType (ArkWeb_Response * response, const char * mimeType ) 2290``` 2291**描述:** 2292 2293为ArkWeb_Response设置媒体类型。 2294 2295**系统能力:** SystemCapability.Web.Webview.Core 2296 2297**起始版本:** 12 2298 2299**参数:** 2300 2301| 名称 | 描述 | 2302| -------- | -------- | 2303| response | ArkWeb_Response。 | 2304| mimeType | 请求的媒体类型。 | 2305 2306**返回:** 2307 2308如果返回0,表示成功;返回17100101,表示参数无效。 2309 2310 2311### OH_ArkWebResponse_SetStatus() 2312 2313``` 2314int32_t OH_ArkWebResponse_SetStatus (ArkWeb_Response * response, int status ) 2315``` 2316**描述:** 2317 2318为ArkWeb_Response对象设置一个HTTP状态码。 2319 2320**系统能力:** SystemCapability.Web.Webview.Core 2321 2322**起始版本:** 12 2323 2324**参数:** 2325 2326| 名称 | 描述 | 2327| -------- | -------- | 2328| response | ArkWeb_Response。 | 2329| status | 请求的HTTP状态码。 | 2330 2331**返回:** 2332 2333如果返回0,表示成功;返回17100101,表示参数无效。 2334 2335 2336### OH_ArkWebResponse_SetStatusText() 2337 2338``` 2339int32_t OH_ArkWebResponse_SetStatusText (ArkWeb_Response * response, const char * statusText ) 2340``` 2341**描述:** 2342 2343为ArkWeb_Response设置状态文本。 2344 2345**系统能力:** SystemCapability.Web.Webview.Core 2346 2347**起始版本:** 12 2348 2349**参数:** 2350 2351| 名称 | 描述 | 2352| -------- | -------- | 2353| response | ArkWeb_Response。 | 2354| statusText | 请求的状态文本。 | 2355 2356**返回:** 2357 2358如果返回0,表示成功;返回17100101,表示参数无效。 2359 2360 2361### OH_ArkWebResponse_SetUrl() 2362 2363``` 2364int32_t OH_ArkWebResponse_SetUrl (ArkWeb_Response * response, const char * url ) 2365``` 2366**描述:** 2367 2368设置经过重定向或由于HSTS而改变后的解析URL,设置后会触发跳转。 2369 2370**系统能力:** SystemCapability.Web.Webview.Core 2371 2372**起始版本:** 12 2373 2374**参数:** 2375 2376| 名称 | 描述 | 2377| -------- | -------- | 2378| response | ArkWeb_Response。 | 2379| url | 解析后的URL。 | 2380 2381**返回:** 2382 2383如果返回0,表示成功;返回17100101,表示参数无效。 2384 2385 2386### OH_ArkWebSchemeHandler_GetUserData() 2387 2388``` 2389void* OH_ArkWebSchemeHandler_GetUserData (const ArkWeb_SchemeHandler * schemeHandler) 2390``` 2391**描述:** 2392 2393从ArkWeb_SchemeHandler获取用户数据。 2394 2395**系统能力:** SystemCapability.Web.Webview.Core 2396 2397**起始版本:** 12 2398 2399**参数:** 2400 2401| 名称 | 描述 | 2402| -------- | -------- | 2403| schemeHandler | ArkWeb_SchemeHandler。 | 2404 2405**返回:** 2406 2407设置的用户数据。 2408 2409 2410### OH_ArkWebSchemeHandler_SetOnRequestStart() 2411 2412``` 2413int32_t OH_ArkWebSchemeHandler_SetOnRequestStart (ArkWeb_SchemeHandler * schemeHandler, ArkWeb_OnRequestStart onRequestStart ) 2414``` 2415**描述:** 2416 2417为SchemeHandler设置OnRequestStart回调。 2418 2419**系统能力:** SystemCapability.Web.Webview.Core 2420 2421**起始版本:** 12 2422 2423**参数:** 2424 2425| 名称 | 描述 | 2426| -------- | -------- | 2427| schemeHandler | 该scheme的SchemeHandler。 | 2428| onRequestStart | OnRequestStart回调函数。 | 2429 2430**返回:** 2431 2432如果返回0,表示成功;返回17100101,表示参数无效。 2433 2434 2435### OH_ArkWebSchemeHandler_SetOnRequestStop() 2436 2437``` 2438int32_t OH_ArkWebSchemeHandler_SetOnRequestStop (ArkWeb_SchemeHandler * schemeHandler, ArkWeb_OnRequestStop onRequestStop ) 2439``` 2440**描述:** 2441 2442为SchemeHandler设置OnRequestStop回调。 2443 2444**系统能力:** SystemCapability.Web.Webview.Core 2445 2446**起始版本:** 12 2447 2448**参数:** 2449 2450| 名称 | 描述 | 2451| -------- | -------- | 2452| schemeHandler | 该scheme的SchemeHandler。 | 2453| onRequestStop | OnRequestStop回调函数。 | 2454 2455**返回:** 2456 2457如果返回0,表示成功;返回17100101,表示参数无效。 2458 2459 2460### OH_ArkWebSchemeHandler_SetUserData() 2461 2462``` 2463int32_t OH_ArkWebSchemeHandler_SetUserData (ArkWeb_SchemeHandler * schemeHandler, void * userData ) 2464``` 2465**描述:** 2466 2467将一个用户数据设置到ArkWeb_SchemeHandler对象中。 2468 2469**系统能力:** SystemCapability.Web.Webview.Core 2470 2471**起始版本:** 12 2472 2473**参数:** 2474 2475| 名称 | 描述 | 2476| -------- | -------- | 2477| schemeHandler | ArkWeb_SchemeHandler。 | 2478| userData | 要设置的用户数据。 | 2479 2480**返回:** 2481 2482如果返回0,表示成功;返回17100101,表示参数无效。 2483 2484 2485### OH_ArkWebServiceWorker_ClearSchemeHandlers() 2486 2487``` 2488int32_t OH_ArkWebServiceWorker_ClearSchemeHandlers () 2489``` 2490**描述:** 2491 2492清除为ServiceWorker注册的SchemeHandler。 2493 2494**系统能力:** SystemCapability.Web.Webview.Core 2495 2496**起始版本:** 12 2497 2498**返回:** 2499 2500如果返回0,表示成功。 2501 2502 2503### OH_ArkWebServiceWorker_SetSchemeHandler() 2504 2505``` 2506bool OH_ArkWebServiceWorker_SetSchemeHandler (const char * scheme, ArkWeb_SchemeHandler * schemeHandler ) 2507``` 2508**描述:** 2509 2510为指定scheme设置一个ArkWeb_SchemeHandler以拦截ServiceWorker触发的该scheme类型的请求。 2511 2512应该在创建BrowserContext之后设置SchemeHandler。 2513 2514可以使用WebviewController.initializeWebEngine来初始化BrowserContext而无需创建ArkWeb。 2515 2516**系统能力:** SystemCapability.Web.Webview.Core 2517 2518**起始版本:** 12 2519 2520**参数:** 2521 2522| 名称 | 描述 | 2523| -------- | -------- | 2524| scheme | 需要被拦截的scheme。 | 2525| schemeHandler | 该scheme的拦截器ArkWeb_SchemeHandler。只有通过ServiceWorker触发的请求才会通过这个schemeHandler进行通知。 | 2526 2527**返回:** 2528 2529如果为指定scheme设置SchemeHandler成功,则返回true,否则返回false。 2530 2531 2532### OH_NativeArkWeb_GetDestroyCallback() 2533 2534``` 2535NativeArkWeb_OnDestroyCallback OH_NativeArkWeb_GetDestroyCallback (const char * webTag) 2536``` 2537**描述:** 2538 2539获取已注册的组件销毁时的回调函数。 2540 2541**系统能力:** SystemCapability.Web.Webview.Core 2542 2543**起始版本:** 11 2544 2545**参数:** 2546 2547| 名称 | 描述 | 2548| -------- | -------- | 2549| webTag | Web组件的名称。 | 2550 2551**返回:** 2552 2553return 已注册的组件销毁时的回调函数。 2554 2555### OH_NativeArkWeb_LoadData() 2556 2557``` 2558ArkWeb_ErrorCode OH_NativeArkWeb_LoadData (const char* webTag,const char* data,const char* mimeType,const char* encoding,const char* baseUrl,const char* historyUrl) 2559``` 2560**描述:** 2561 2562加载数据或URL,此函数应在主线程中调用。 2563 2564**系统能力:** SystemCapability.Web.Webview.Core 2565 2566**起始版本:** 15 2567 2568**参数:** 2569 2570| 名称 | 描述 | 2571| -------- | -------- | 2572| webTag | Web组件的名称。 | 2573| data | "Base64"或"URL"编码的字符串,不能为空。 | 2574| mimeType | 媒体类型,例如"text/html",不能为空。 | 2575| encoding | 编码类型,例如"UTF-8",不能为空。 | 2576| baseUrl | 指定的URL路径("http"/"https"/"data"协议),由Web组件分配给window.origin。 | 2577| historyUrl | 历史URL,当它不为空时,可以通过历史记录来管理,实现前进和后退功能。 | 2578 2579 2580**返回:** 2581 2582return ArkWeb NDK接口异常错误码。 2583 2584 2585### OH_NativeArkWeb_GetJavaScriptProxyValidCallback() 2586 2587``` 2588NativeArkWeb_OnValidCallback OH_NativeArkWeb_GetJavaScriptProxyValidCallback (const char * webTag) 2589``` 2590**描述:** 2591 2592获取已注册的对象可注册时的回调函数。 2593 2594**系统能力:** SystemCapability.Web.Webview.Core 2595 2596**起始版本:** 11 2597 2598**参数:** 2599 2600| 名称 | 描述 | 2601| -------- | -------- | 2602| webTag | Web组件的名称。 | 2603 2604**返回:** 2605 2606return 已注册的对象可注册时的回调函数。 2607 2608 2609### OH_NativeArkWeb_RegisterJavaScriptProxy() 2610 2611``` 2612void OH_NativeArkWeb_RegisterJavaScriptProxy (const char * webTag, const char * objName, const char ** methodList, NativeArkWeb_OnJavaScriptProxyCallback * callback, int32_t size, bool needRefresh ) 2613``` 2614**描述:** 2615 2616注册对象及函数名称列表。 2617 2618**系统能力:** SystemCapability.Web.Webview.Core 2619 2620**起始版本:** 11 2621 2622**参数:** 2623 2624| 名称 | 描述 | 2625| -------- | -------- | 2626| webTag | Web组件的名称。 | 2627| objName | 注入对象的名称。 | 2628| methodList | 注入函数列表的名称。 | 2629| callback | 注入的回调函数。 | 2630| size | 注入的回调函数的个数。 | 2631| needRefresh | 是否需要刷新页面。 | 2632 2633 2634### OH_NativeArkWeb_RunJavaScript() 2635 2636``` 2637void OH_NativeArkWeb_RunJavaScript (const char * webTag, const char * jsCode, NativeArkWeb_OnJavaScriptCallback callback ) 2638``` 2639**描述:** 2640 2641在当前显示页面的环境下,加载并执行一段JavaScript代码。 2642 2643**系统能力:** SystemCapability.Web.Webview.Core 2644 2645**起始版本:** 11 2646 2647**参数:** 2648 2649| 名称 | 描述 | 2650| -------- | -------- | 2651| webTag | Web组件的名称。 | 2652| jsCode | 一段JavaScript的代码脚本。 | 2653| callback | 代码执行完后通知开发者结果的回调函数。 | 2654 2655 2656### OH_NativeArkWeb_SetDestroyCallback() 2657 2658``` 2659void OH_NativeArkWeb_SetDestroyCallback (const char * webTag, NativeArkWeb_OnDestroyCallback callback ) 2660``` 2661**描述:** 2662 2663设置组件销毁时的回调函数。 2664 2665**系统能力:** SystemCapability.Web.Webview.Core 2666 2667**起始版本:** 11 2668 2669**参数:** 2670 2671| 名称 | 描述 | 2672| -------- | -------- | 2673| webTag | Web组件的名称。 | 2674| callback | 组件销毁时的回调函数。 | 2675 2676 2677### OH_NativeArkWeb_SetJavaScriptProxyValidCallback() 2678 2679``` 2680void OH_NativeArkWeb_SetJavaScriptProxyValidCallback (const char * webTag, NativeArkWeb_OnValidCallback callback ) 2681``` 2682**描述:** 2683 2684设置对象可注册时的回调函数。 2685 2686**系统能力:** SystemCapability.Web.Webview.Core 2687 2688**起始版本:** 11 2689 2690**参数:** 2691 2692| 名称 | 描述 | 2693| -------- | -------- | 2694| webTag | Web组件的名称。 | 2695| callback | 对象可注册时的回调函数。 | 2696 2697 2698### OH_NativeArkWeb_UnregisterJavaScriptProxy() 2699 2700``` 2701void OH_NativeArkWeb_UnregisterJavaScriptProxy (const char * webTag, const char * objName ) 2702``` 2703**描述:** 2704 2705删除已注册的对象及其下的回调函数。 2706 2707**系统能力:** SystemCapability.Web.Webview.Core 2708 2709**起始版本:** 11 2710 2711**参数:** 2712 2713| 名称 | 描述 | 2714| -------- | -------- | 2715| webTag | Web组件的名称。 | 2716| objName | 注入对象的名称。 | 2717 2718### OH_ArkWeb_RegisterScrollCallback() 2719 2720``` 2721bool OH_ArkWeb_RegisterScrollCallback(const char* webTag, ArkWeb_OnScrollCallback callback, void* userData) 2722``` 2723**描述:** 2724 2725设置组件滚动时的回调函数。 2726 2727**系统能力:** SystemCapability.Web.Webview.Core 2728 2729**起始版本:** 16 2730 2731**参数:** 2732 2733| 名称 | 描述 | 2734| -------- | -------- | 2735| webTag | Web组件的名称。 | 2736| callback | 页面滚动时的回调函数。 | 2737| userData | 要设置的用户数据。 | 2738 2739**返回:** 2740 2741如果回调设置成功,则返回true,否则返回false。 2742