1# native_interface_arkweb.h 2<!--Kit: ArkWeb--> 3<!--Subsystem: Web--> 4<!--Owner: @yp99ustc; @aohui; @zourongchun--> 5<!--Designer: @LongLie; @yaomingliu; @zhufenghao--> 6<!--Tester: @ghiker--> 7<!--Adviser: @HelloCrease--> 8 9## 概述 10 11声明API接口供开发者使用注入对象和执行JavaScript代码等功能。 12 13**库:** libohweb.so 14 15**系统能力:** SystemCapability.Web.Webview.Core 16 17**起始版本:** 11 18 19**相关模块:** [Web](capi-web.md) 20 21## 汇总 22 23### 结构体 24 25| 名称 | typedef关键字 | 描述 | 26| -- | -- | -- | 27| [ArkWeb_BlanklessInfo](capi-web-arkweb-blanklessinfo.md) | ArkWeb_BlanklessInfo | 页面首屏加载预测信息,主要包括首屏相似度预测值,首屏加载耗时预测值,预测错误码,应用需根据此信息来决策是否启用无白屏加载插帧方案。 | 28 29### 枚举 30 31| 名称 | typedef关键字 | 描述 | 32| -- | -- | -- | 33| [ArkWebEngineVersion](#arkwebengineversion) | ArkWebEngineVersion | ArkWeb内核版本,请参考[M114内核在OpenHarmony6.0系统上的适配指导](https://gitcode.com/openharmony-tpc/chromium_src/blob/132_trunk/web/ReleaseNote/CompatibleWithLegacyWebEngine.md)。 | 34 35 36### 函数 37 38| 名称 | typedef关键字 | 描述 | 39| -- | -- | -- | 40| [typedef void (\*NativeArkWeb_OnJavaScriptCallback)(const char*)](#nativearkweb_onjavascriptcallback) | NativeArkWeb_OnJavaScriptCallback | 定义执行JavaScript代码后返回结果的回调函数的类型。 | 41| [typedef char* (\*NativeArkWeb_OnJavaScriptProxyCallback)(const char** argv, int32_t argc)](#nativearkweb_onjavascriptproxycallback) | NativeArkWeb_OnJavaScriptProxyCallback | 定义注入对象的回调函数的类型。 | 42| [typedef void (\*NativeArkWeb_OnValidCallback)(const char*)](#nativearkweb_onvalidcallback) | NativeArkWeb_OnValidCallback | 定义Web组件可用时的回调函数的类型。 | 43| [typedef void (\*NativeArkWeb_OnDestroyCallback)(const char*)](#nativearkweb_ondestroycallback) | NativeArkWeb_OnDestroyCallback | 定义Web组件销毁时的回调函数的类型。 | 44| [typedef void (\*OH_ArkWeb_OnCookieSaveCallback)(ArkWeb_ErrorCode errorCode)](#oh_arkweb_oncookiesavecallback) | OH_ArkWeb_OnCookieSaveCallback | 定义保存cookie的回调函数的类型。<br>**起始版本:** 20 | 45| [void OH_NativeArkWeb_RunJavaScript(const char* webTag, const char* jsCode, NativeArkWeb_OnJavaScriptCallback callback)](#oh_nativearkweb_runjavascript) | - | 在当前显示页面的环境下,加载并异步执行一段JavaScript代码。 | 46| [void OH_NativeArkWeb_RegisterJavaScriptProxy(const char* webTag, const char* objName, const char** methodList,NativeArkWeb_OnJavaScriptProxyCallback* callback, int32_t size, bool needRefresh)](#oh_nativearkweb_registerjavascriptproxy) | - | 注册对象及函数名称列表。 | 47| [void OH_NativeArkWeb_UnregisterJavaScriptProxy(const char* webTag, const char* objName)](#oh_nativearkweb_unregisterjavascriptproxy) | - | 删除已注册的对象及其下的回调函数。 | 48| [void OH_NativeArkWeb_SetJavaScriptProxyValidCallback(const char* webTag, NativeArkWeb_OnValidCallback callback)](#oh_nativearkweb_setjavascriptproxyvalidcallback) | - | 设置对象可注册时的回调函数。 | 49| [NativeArkWeb_OnValidCallback OH_NativeArkWeb_GetJavaScriptProxyValidCallback(const char* webTag)](#oh_nativearkweb_getjavascriptproxyvalidcallback) | - | 获取已注册的对象可注册时的回调函数。 | 50| [void OH_NativeArkWeb_SetDestroyCallback(const char* webTag, NativeArkWeb_OnDestroyCallback callback)](#oh_nativearkweb_setdestroycallback) | - | 设置组件销毁时的回调函数。 | 51| [NativeArkWeb_OnDestroyCallback OH_NativeArkWeb_GetDestroyCallback(const char* webTag)](#oh_nativearkweb_getdestroycallback) | - | 获取已注册的组件销毁时的回调函数。 | 52| [ArkWeb_ErrorCode OH_NativeArkWeb_LoadData(const char* webTag,const char* data,const char* mimeType,const char* encoding,const char* baseUrl,const char* historyUrl)](#oh_nativearkweb_loaddata) | - | 加载数据或URL,此函数应在主线程中调用。 | 53| [void OH_NativeArkWeb_RegisterAsyncThreadJavaScriptProxy(const char* webTag,const ArkWeb_ProxyObjectWithResult* proxyObject, const char* permission)](#oh_nativearkweb_registerasyncthreadjavascriptproxy) | - | 注册一个包含回调方法的 JavaScript 对象,这些方法可带有返回值。该对象将被注入到当前页面的所有frame中,包括所有的 iframe,并且可以通过在 ArkWeb_ProxyObjectWithResult 中指定的名称进行访问。该对象只会在下一次加载或重新加载页面后在 JavaScript 中生效。这些方法将在 ArkWeb 的工作线程中执行。 | 54| [ArkWeb_ErrorCode OH_ArkWebCookieManager_SaveCookieSync()](#oh_arkwebcookiemanager_savecookiesync) | - | 将当前可通过CookieManager API访问的所有Cookie持久化到磁盘。如果要在非UI线程中使用此接口,则需要先使用OH_ArkWeb_GetNativeAPI初始化CookieManager接口。<br>**起始版本:** 20 | 55| [void OH_ArkWebCookieManager_SaveCookieAsync(OH_ArkWeb_OnCookieSaveCallback callback)](#oh_arkwebcookiemanager_savecookieasync) | - | 将当前可通过CookieManager API访问的所有Cookie持久化到磁盘。在不初始化CookieManager接口的情况下,此接口将在UI线程上自动执行。<br>**起始版本:** 20 | 56| [ArkWeb_BlanklessInfo OH_NativeArkWeb_GetBlanklessInfoWithKey(const char* webTag, const char* key)](#oh_nativearkweb_getblanklessinfowithkey) | - | 获取页面首屏加载预测信息(详细说明见[ArkWeb_BlanklessInfo](capi-web-arkweb-blanklessinfo.md)),并开始本次加载过渡帧生成,应用根据此信息确定是否需要启用无白屏加载。必须与[OH_NativeArkWeb_SetBlanklessLoadingWithKey](#oh_nativearkweb_setblanklessloadingwithkey)接口配套使用,并且必须在触发加载页面的接口之前调用。需在WebViewController与Web组件绑定后才能使用。 | 57| [ArkWeb_BlanklessErrorCode OH_NativeArkWeb_SetBlanklessLoadingWithKey(const char* webTag, const char* key, bool isStarted)](#oh_nativearkweb_setblanklessloadingwithkey) | - | 设置无白屏加载是否启用。本接口必须与[OH_NativeArkWeb_GetBlanklessInfoWithKey](#oh_nativearkweb_getblanklessinfowithkey)接口配套使用。 | 58| [void OH_NativeArkWeb_ClearBlanklessLoadingCache(const char* key[], uint32_t size)](#oh_nativearkweb_clearblanklessloadingcache) | - | 清除指定key值页面无白屏优化缓存,本接口只清除缓存。 | 59| [uint32_t OH_NativeArkWeb_SetBlanklessLoadingCacheCapacity(uint32_t capacity)](#oh_nativearkweb_setblanklessloadingcachecapacity) | - | 设置无白屏加载方案的持久化缓存容量,返回实际生效值。默认缓存容量为30MB,最大值为100MB。当实际缓存超过容量时,将采用淘汰不常用的过渡帧的方式清理。 | 60| [void OH_NativeArkWeb_SetActiveWebEngineVersion(ArkWebEngineVersion webEngineVersion)](#oh_nativearkweb_setactivewebengineversion) | - | 设置ArkWeb内核版本。若系统不支持指定版本,则设置无效。该接口为全局静态方法,须在调用initializeWebEngine前执行,若已加载任何Web组件,则该设置无效。 | 61| [ArkWebEngineVersion OH_NativeArkWeb_GetActiveWebEngineVersion()](#oh_nativearkweb_getactivewebengineversion) | - | 获取当前使用的ArkWeb内核版本。 | 62 63## 枚举类型说明 64 65### ArkWebEngineVersion 66 67``` 68enum ArkWebEngineVersion 69``` 70 71**描述:** 72 73ArkWeb内核版本,请参考[M114内核在OpenHarmony6.0系统上的适配指导](https://gitcode.com/openharmony-tpc/chromium_src/blob/132_trunk/web/ReleaseNote/CompatibleWithLegacyWebEngine.md)。 74 75| **内核类型** | **英文** | **说明** | 76| ----------- | -------- | -------- | 77| 常青内核 | EVERGREEN WebCore | 当前系统的最新Web内核,系统基于此内核进行完整的功能实现,推荐应用使用。| 78| 遗留内核 | LEGACY WebCore | 复用上一版本的内核,只做安全补丁及舆情问题修复,仅作为兼容性回滚使用,且遗留内核的支持有时间限制。 | 79 80**起始版本:** 20 81 82| 枚举项 | 描述 | 83| -------------------- | ------------------- | 84| SYSTEM_DEFAULT = 0 | 系统默认内核,OpenHarmony 6.0版本默认为M132。 | 85| ARKWEB_M114 = 1 | OpenHarmony 6.0版本的遗留内核。开发者可选择此遗留内核,若系统版本上不存在此内核则设置无效。 | 86| ARKWEB_M132 = 2 | OpenHarmony 6.0版本的常青内核,M132为此版本的默认内核。若系统版本上不存在此内核则设置无效。 | 87 88## 函数说明 89 90### NativeArkWeb_OnJavaScriptCallback() 91 92``` 93typedef void (*NativeArkWeb_OnJavaScriptCallback)(const char*) 94``` 95 96**描述:** 97 98定义执行JavaScript代码后返回结果的回调函数的类型。 99 100**起始版本:** 11 101 102### NativeArkWeb_OnJavaScriptProxyCallback() 103 104``` 105typedef char* (*NativeArkWeb_OnJavaScriptProxyCallback)(const char** argv, int32_t argc) 106``` 107 108**描述:** 109 110定义注入对象的回调函数的类型。 111 112**起始版本:** 11 113 114### NativeArkWeb_OnValidCallback() 115 116``` 117typedef void (*NativeArkWeb_OnValidCallback)(const char*) 118``` 119 120**描述:** 121 122定义Web组件可用时的回调函数的类型。 123 124**起始版本:** 11 125 126### NativeArkWeb_OnDestroyCallback() 127 128``` 129typedef void (*NativeArkWeb_OnDestroyCallback)(const char*) 130``` 131 132**描述:** 133 134定义Web组件销毁时的回调函数的类型。 135 136**起始版本:** 11 137 138### OH_ArkWeb_OnCookieSaveCallback() 139 140``` 141typedef void (*OH_ArkWeb_OnCookieSaveCallback)(ArkWeb_ErrorCode errorCode) 142``` 143 144**描述:** 145 146定义保存cookie的回调函数的类型。 147 148**起始版本:** 20 149 150**参数:** 151 152| 参数项 | 描述 | 153| -- | -- | 154| [ArkWeb_ErrorCode](capi-arkweb-error-code-h.md#arkweb_errorcode) errorCode | [ARKWEB_SUCCESS](capi-arkweb-error-code-h.md#arkweb_errorcode) 保存cookie成功。<br> [ARKWEB_COOKIE_SAVE_FAILED](capi-arkweb-error-code-h.md#arkweb_errorcode) 保存cookie失败。<br> [ARKWEB_COOKIE_MANAGER_INITIALIZE_FAILED](capi-arkweb-error-code-h.md#arkweb_errorcode) CookieManager初始化失败。 | 155 156### OH_NativeArkWeb_RunJavaScript() 157 158``` 159void OH_NativeArkWeb_RunJavaScript(const char* webTag, const char* jsCode, NativeArkWeb_OnJavaScriptCallback callback) 160``` 161 162**描述:** 163 164在当前显示页面的环境下,加载并异步执行一段JavaScript代码。 165 166**系统能力:** SystemCapability.Web.Webview.Core 167 168**起始版本:** 11 169 170 171**参数:** 172 173| 参数项 | 描述 | 174| -- | -- | 175| const char* webTag | Web组件的名称。 | 176| const char* jsCode | 一段JavaScript的代码脚本。 | 177| [NativeArkWeb_OnJavaScriptCallback](#nativearkweb_onjavascriptcallback) callback | 代码执行完后通知开发者结果的回调函数。 | 178 179### OH_NativeArkWeb_RegisterJavaScriptProxy() 180 181``` 182void OH_NativeArkWeb_RegisterJavaScriptProxy(const char* webTag, const char* objName, const char** methodList,NativeArkWeb_OnJavaScriptProxyCallback* callback, int32_t size, bool needRefresh) 183``` 184 185**描述:** 186 187注册对象及函数名称列表。 188 189**系统能力:** SystemCapability.Web.Webview.Core 190 191**起始版本:** 11 192 193 194**参数:** 195 196| 参数项 | 描述 | 197| -- | -- | 198| const char* webTag | Web组件的名称。 | 199| const char* objName | 注入对象的名称。 | 200| const char** methodList | 注入函数列表的名称。 | 201| [NativeArkWeb_OnJavaScriptProxyCallback](#nativearkweb_onjavascriptproxycallback)* callback | 注入的回调函数。 | 202| int32_t size | 注入的回调函数的个数。 | 203| bool needRefresh | 是否需要刷新页面。 | 204 205### OH_NativeArkWeb_UnregisterJavaScriptProxy() 206 207``` 208void OH_NativeArkWeb_UnregisterJavaScriptProxy(const char* webTag, const char* objName) 209``` 210 211**描述:** 212 213删除已注册的对象及其下的回调函数。 214 215**系统能力:** SystemCapability.Web.Webview.Core 216 217**起始版本:** 11 218 219 220**参数:** 221 222| 参数项 | 描述 | 223| -- | -- | 224| const char* webTag | Web组件的名称。 | 225| const char* objName | 注入对象的名称。 | 226 227### OH_NativeArkWeb_SetJavaScriptProxyValidCallback() 228 229``` 230void OH_NativeArkWeb_SetJavaScriptProxyValidCallback(const char* webTag, NativeArkWeb_OnValidCallback callback) 231``` 232 233**描述:** 234 235设置对象可注册时的回调函数。 236 237**系统能力:** SystemCapability.Web.Webview.Core 238 239**起始版本:** 11 240 241 242**参数:** 243 244| 参数项 | 描述 | 245| -- | -- | 246| const char* webTag | Web组件的名称。 | 247| [NativeArkWeb_OnValidCallback](#nativearkweb_onvalidcallback) callback | 对象可注册时的回调函数。 | 248 249### OH_NativeArkWeb_GetJavaScriptProxyValidCallback() 250 251``` 252NativeArkWeb_OnValidCallback OH_NativeArkWeb_GetJavaScriptProxyValidCallback(const char* webTag) 253``` 254 255**描述:** 256 257获取已注册的对象可注册时的回调函数。 258 259**系统能力:** SystemCapability.Web.Webview.Core 260 261**起始版本:** 11 262 263 264**参数:** 265 266| 参数项 | 描述 | 267| -- | -- | 268| const char* webTag | Web组件的名称。 | 269 270**返回:** 271 272| 类型 | 说明 | 273| -- | -- | 274| [NativeArkWeb_OnValidCallback](#nativearkweb_onvalidcallback) | 已注册的对象可注册时的回调函数。如果未设置由参数webTag指定的有效回调函数,则将返回空指针。 | 275 276### OH_NativeArkWeb_SetDestroyCallback() 277 278``` 279void OH_NativeArkWeb_SetDestroyCallback(const char* webTag, NativeArkWeb_OnDestroyCallback callback) 280``` 281 282**描述:** 283 284设置组件销毁时的回调函数。 285 286**系统能力:** SystemCapability.Web.Webview.Core 287 288**起始版本:** 11 289 290 291**参数:** 292 293| 参数项 | 描述 | 294| -- | -- | 295| const char* webTag | Web组件的名称。 | 296| [NativeArkWeb_OnDestroyCallback](#nativearkweb_ondestroycallback) callback | 组件销毁时的回调函数。 | 297 298### OH_NativeArkWeb_GetDestroyCallback() 299 300``` 301NativeArkWeb_OnDestroyCallback OH_NativeArkWeb_GetDestroyCallback(const char* webTag) 302``` 303 304**描述:** 305 306获取已注册的组件销毁时的回调函数。 307 308**系统能力:** SystemCapability.Web.Webview.Core 309 310**起始版本:** 11 311 312 313**参数:** 314 315| 参数项 | 描述 | 316| -- | -- | 317| const char* webTag | Web组件的名称。 | 318 319**返回:** 320 321| 类型 | 说明 | 322| -- | -- | 323| [NativeArkWeb_OnDestroyCallback](#nativearkweb_ondestroycallback) | return 已注册的组件销毁时的回调函数。如果未设置由参数webTag指定的销毁回调函数,则将返回空指针。 | 324 325### OH_NativeArkWeb_LoadData() 326 327``` 328ArkWeb_ErrorCode OH_NativeArkWeb_LoadData(const char* webTag,const char* data,const char* mimeType,const char* encoding,const char* baseUrl,const char* historyUrl) 329``` 330 331**描述:** 332 333加载数据或URL,此函数应在主线程中调用。 334 335**系统能力:** SystemCapability.Web.Webview.Core 336 337**起始版本:** 15 338 339 340**参数:** 341 342| 参数项 | 描述 | 343| -- | -- | 344| const char* webTag | Web组件的名称。 | 345| const char* data | "Base64"或"URL"编码的字符串,不能为空。 | 346| const char* mimeType | 媒体类型,例如"text/html",不能为空。 | 347| const char* encoding | 编码类型,例如"UTF-8",不能为空。 | 348| const char* baseUrl | 指定的URL路径("http"/"https"/"data"协议),由Web组件分配给window.origin。 | 349| const char* historyUrl | 历史URL,当它不为空时,可以通过历史记录来管理,实现前进和后退功能。 | 350 351**返回:** 352 353| 类型 | 说明 | 354|------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 355| [ArkWeb_ErrorCode](capi-arkweb-error-code-h.md#arkweb_errorcode) | LoadData 错误码。<br> [ARKWEB_SUCCESS](capi-arkweb-error-code-h.md#arkweb_errorcode) 加载数据成功。<br> [ARKWEB_INVALID_PARAM](capi-arkweb-error-code-h.md#arkweb_errorcode) 必填参数未指定或参数类型不正确或参数校验失败。<br> [ARKWEB_INIT_ERROR](capi-arkweb-error-code-h.md#arkweb_errorcode) 初始化失败,根据传入的"webTag"找不到有效的Web组件。<br> [ARKWEB_LIBRARY_OPEN_FAILURE](capi-arkweb-error-code-h.md#arkweb_errorcode) 打开动态链接库失败。<br> [ARKWEB_LIBRARY_SYMBOL_NOT_FOUND](capi-arkweb-error-code-h.md#arkweb_errorcode) 动态链接库中未找到所需的符号。 | 356 357### OH_NativeArkWeb_RegisterAsyncThreadJavaScriptProxy() 358 359``` 360void OH_NativeArkWeb_RegisterAsyncThreadJavaScriptProxy(const char* webTag,const ArkWeb_ProxyObjectWithResult* proxyObject, const char* permission) 361``` 362 363**描述:** 364 365注册一个包含回调方法的 JavaScript 对象,这些方法可带有返回值。该对象将被注入到当前页面的所有frame中,包括所有的 iframe,并且可以通过在 ArkWeb_ProxyObjectWithResult 中指定的名称进行访问。该对象只会在下一次加载或重新加载页面后在 JavaScript 中生效。这些方法将在 ArkWeb 的工作线程中执行。 366 367**起始版本:** 20 368 369 370**参数:** 371 372| 参数项 | 描述 | 373|-----------------------------------------------------| -- | 374| const char* webTag | Web组件名称。 | 375| const [ArkWeb_ProxyObjectWithResult](capi-web-arkweb-proxyobjectwithresult.md)* proxyObject | 注册的对象。 | 376| const char* permission | json格式字符串,默认值为空。该字符串用来配置JSBridge的权限限制,可以配置对象和方法级别。 | 377 378### OH_ArkWebCookieManager_SaveCookieSync() 379 380``` 381ArkWeb_ErrorCode OH_ArkWebCookieManager_SaveCookieSync() 382``` 383 384**描述:** 385 386将当前可通过CookieManager API访问的所有Cookie持久化到磁盘。如果要在非UI线程中使用此接口,则需要先使用OH_ArkWeb_GetNativeAPI初始化CookieManager接口。 387 388**起始版本:** 20 389 390**返回:** 391 392| 类型 | 说明 | 393| -- | -- | 394| [ArkWeb_ErrorCode](capi-arkweb-error-code-h.md#arkweb_errorcode) | SaveCookieSync错误码。<br> [ARKWEB_SUCCESS](capi-arkweb-error-code-h.md#arkweb_errorcode) 保存cookie成功。<br> [ARKWEB_COOKIE_SAVE_FAILED](capi-arkweb-error-code-h.md#arkweb_errorcode) 保存cookie失败。<br> [ARKWEB_COOKIE_MANAGER_INITIALIZE_FAILED](capi-arkweb-error-code-h.md#arkweb_errorcode) CookieManager初始化失败。<br> [ARKWEB_COOKIE_MANAGER_NOT_INITIALIZED](capi-arkweb-error-code-h.md#arkweb_errorcode) 在非UI线程中,不允许在不初始化CookieManager接口的情况下调用该接口。请先使用OH_ArkWeb_GetNativeAPI初始化CookieManager接口。 | 395 396### OH_ArkWebCookieManager_SaveCookieAsync() 397 398``` 399void OH_ArkWebCookieManager_SaveCookieAsync(OH_ArkWeb_OnCookieSaveCallback callback) 400``` 401 402**描述:** 403 404将当前可通过CookieManager API访问的所有Cookie持久化到磁盘。在不初始化CookieManager接口的情况下,此接口将在UI线程上自动执行。 405 406**起始版本:** 20 407 408**参数:** 409 410| 参数项 | 描述 | 411| -- | -- | 412| [OH_ArkWeb_OnCookieSaveCallback](#oh_arkweb_oncookiesavecallback)* callback | 保存cookie完成后执行该回调。 | 413### OH_NativeArkWeb_GetBlanklessInfoWithKey() 414 415``` 416ArkWeb_BlanklessInfo OH_NativeArkWeb_GetBlanklessInfoWithKey(const char* webTag, const char* key) 417``` 418 419**描述:** 420 421获取页面首屏加载预测信息(详细说明见[ArkWeb_BlanklessInfo](capi-web-arkweb-blanklessinfo.md)),并开始本次加载过渡帧生成,应用根据此信息确定是否需要启用无白屏加载。必须与[OH_NativeArkWeb_SetBlanklessLoadingWithKey](#oh_nativearkweb_setblanklessloadingwithkey)接口配套使用,并且必须在触发加载页面的接口之前调用。需在WebViewController与Web组件绑定后才能使用。 422 423> **说明:** 424> 425> - 持久缓存容量:默认大小为30MB(约30页),可以通过接口[OH_NativeArkWeb_SetBlanklessLoadingCacheCapacity](#oh_nativearkweb_setblanklessloadingcachecapacity)设置缓存容量,具体见该接口说明。超过容量时根据LRU(Least Recently Used,淘汰不常用缓存的策略)机制更新缓存。自动清理超过7天的持久缓存数据,缓存清除后第三次加载页面开始有优化效果。 426> - 如果发现相似度(即[ArkWeb_BlanklessInfo](capi-web-arkweb-blanklessinfo.md)中的similarity)极低,请检查key值是否正确传递。 427> - 调用本接口后,会启用页面加载快照检测及生成过渡帧计算,产生一定资源开销。 428> - 启用无白屏加载的页面会带来一定的资源开销,开销的大小与Web组件的分辨率相关。假设分辨率的宽度和高度分别为:w, h。页面在打开阶段会增加峰值内存,增加量约为12*w*h B。页面打开后,内存会被回收,不影响稳态内存。增加固态应用缓存的大小,每个页面增加的缓存约w*h/10 B,缓存位于应用缓存的位置。 429 430**需要权限:** ohos.permission.INTERNET和ohos.permission.GET_NETWORK_INFO 431 432**起始版本:** 20 433 434**设备行为差异:** 该接口在Phone中可正常调用,在其他设备类型中返回801错误码。 435 436**参数:** 437 438| 参数项 | 描述 | 439|-----------------------------------------------------| -- | 440| const char* webTag | Web组件名称。 | 441| const char* key | 唯一标识本页面的key值。<br>合法取值范围:非空,长度不超过2048个字符。<br>设置非法值时不生效。 | 442 443**返回:** 444 445| 类型 | 说明 | 446| -- | -- | 447| [ArkWeb_BlanklessInfo](capi-web-arkweb-blanklessinfo.md) | 页面首屏加载预测信息,主要包括首屏相似度预测值,首屏加载耗时预测值,应用需根据此信息来决策是否启用无白屏加载插帧。 | 448 449### OH_NativeArkWeb_SetBlanklessLoadingWithKey() 450 451``` 452ArkWeb_BlanklessErrorCode OH_NativeArkWeb_SetBlanklessLoadingWithKey(const char* webTag, const char* key, bool isStarted) 453``` 454 455**描述:** 456 457设置无白屏加载是否启用。本接口必须与[OH_NativeArkWeb_GetBlanklessInfoWithKey](#oh_nativearkweb_getblanklessinfowithkey)接口配套使用。 458 459> **说明:** 460> 461> - 需在触发页面加载的接口之后调用。其他约束同[OH_NativeArkWeb_GetBlanklessInfoWithKey](#oh_nativearkweb_getblanklessinfowithkey)。 462> - 页面的加载必须在调用本套接口的组件中进行。 463> - 当相似度较低时,系统将判定为跳变过大,启用插帧会失败。 464 465**需要权限:** ohos.permission.INTERNET和ohos.permission.GET_NETWORK_INFO 466 467**起始版本:** 20 468 469**参数:** 470 471| 参数项 | 描述 | 472|-----------------------------------------------------| -- | 473| const char* webTag | Web组件名称。 | 474| const char* key | 唯一标识本页面的key值。必须与[OH_NativeArkWeb_GetBlanklessInfoWithKey](#oh_nativearkweb_getblanklessinfowithkey)接口的key值相同。<br>合法取值范围:非空,长度不超过2048个字符。<br>非法值设置行为:返回错误码[ArkWeb_BlanklessErrorCode](./capi-arkweb-error-code-h.md#arkweb_blanklesserrorcode),插帧不生效。 | 475| bool isStarted | 是否启用开始插帧,true:启用,false:不启用。<br>默认值:false。 | 476 477**返回:** 478 479| 类型 | 说明 | 480| -- | -- | 481| [ArkWeb_BlanklessErrorCode](./capi-arkweb-error-code-h.md#arkweb_blanklesserrorcode) | 返回接口调用是否成功,具体见[ArkWeb_BlanklessErrorCode](./capi-arkweb-error-code-h.md#arkweb_blanklesserrorcode)定义。 | 482 483### OH_NativeArkWeb_ClearBlanklessLoadingCache() 484 485``` 486void OH_NativeArkWeb_ClearBlanklessLoadingCache(const char* key[], uint32_t size) 487``` 488 489**描述:** 490 491清除指定key值页面无白屏优化缓存,本接口只清除缓存。 492 493在小程序或Web应用场景中,当页面加载时内容变化显著,可能会出现一次明显的跳变。若对此跳变有所顾虑,可使用该接口清除页面缓存。 494 495> **说明:** 496> 497> - 清除之后的页面,需在第三次加载页面时才会产生优化效果。 498 499**起始版本:** 20 500 501**参数:** 502 503| 参数项 | 描述 | 504|-----------------------------------------------------| -- | 505| const char* key[] | 清除Blankless优化方案页面的key值列表,key值为[OH_NativeArkWeb_GetBlanklessInfoWithKey](#oh_nativearkweb_getblanklessinfowithkey)中指定过的。<br>默认值:所有Blankless优化方案缓存的页面key列表。<br>合法取值范围:长度不超过2048,key列表长度<=100。key和加载页面时输入给ArkWeb的相同。<br>非法值设置行为:key长度超过2048时该key不生效;长度超过100时,取前100个;当为NULL时,使用默认值。 | 506| uint32_t size | keys数组的大小。<br>默认值:0。<br>合法取值范围:0~100。取值超过100时,keys数组取前100个。<br>非法值设置行为:0。 | 507 508 509### OH_NativeArkWeb_SetBlanklessLoadingCacheCapacity() 510 511``` 512uint32_t OH_NativeArkWeb_SetBlanklessLoadingCacheCapacity(uint32_t capacity) 513``` 514 515**描述:** 516 517设置无白屏加载方案的持久化缓存容量,返回实际生效值。默认缓存容量为30MB,最大值为100MB。当实际缓存超过容量时,将采用淘汰不常用的过渡帧的方式清理。 518 519**起始版本:** 20 520 521**参数:** 522 523| 参数项 | 描述 | 524|-----------------------------------------------------| -- | 525| uint32_t capacity | 设置持久化缓存设置,单位MB,最大设置不超过100MB。<br>默认值:30MB。<br>合法取值范围:0~100,当设置为0时,无缓存空间,则功能全局不开启。<br>非法值设置行为:小于0时生效值为0,大于100时生效值为100。 | 526 527**返回:** 528 529| 类型 | 说明 | 530| -- | -- | 531| uint32_t | 返回实际生效的容量值,范围0~100。<br>小于0时生效值为0,大于100时生效值为100。 | 532 533### OH_NativeArkWeb_SetActiveWebEngineVersion() 534 535``` 536void OH_NativeArkWeb_SetActiveWebEngineVersion(ArkWebEngineVersion webEngineVersion) 537``` 538 539**描述:** 540 541设置ArkWeb内核版本。若系统不支持指定版本,则设置无效。 542 543该接口为全局静态方法,须在调用initializeWebEngine前执行,若已加载任何Web组件,则该设置无效。 544 545**遗留内核适配:** 546 547在OpenHarmony 6.0及以后,使用遗留内核时,部分ArkWeb接口不会生效,参考[M114内核在OpenHarmony6.0系统上的适配指导](https://gitcode.com/openharmony-tpc/chromium_src/blob/132_trunk/web/ReleaseNote/CompatibleWithLegacyWebEngine.md)。 548 549**起始版本:** 20 550 551**参数:** 552 553| 参数项 | 描述 | 554|-----------------------------------------------------| -- | 555| ArkWebEngineVersion webEngineVersion | ArkWeb内核版本(详细说明见[ArkWebEngineVersion](#arkwebengineversion))。 | 556 557### OH_NativeArkWeb_GetActiveWebEngineVersion() 558 559``` 560ArkWebEngineVersion OH_NativeArkWeb_GetActiveWebEngineVersion() 561``` 562 563**描述:** 564 565获取当前使用的ArkWeb内核版本。 566 567**起始版本:** 20 568 569**返回:** 570 571| 类型 | 说明 | 572| -- | -- | 573| ArkWebEngineVersion | 返回由[ArkWebEngineVersion](#arkwebengineversion)枚举所定义的当前使用的ArkWeb内核版本。 | 574