diff --git a/web/webview/interfaces/native/libohweb.ndk.json b/web/webview/interfaces/native/libohweb.ndk.json index c86a02925aa59078751e1186c6315c1a960ed980..8119ca252b9f257477447682ff5d7a55cddd1645 100644 --- a/web/webview/interfaces/native/libohweb.ndk.json +++ b/web/webview/interfaces/native/libohweb.ndk.json @@ -366,5 +366,17 @@ { "first_introduced": "20", "name": "OH_ArkWebResourceHandler_DidFailWithErrorV2" + }, + { + "first_introduced": "20", + "name": "OH_NativeArkWeb_SetActiveWebEngineVersion" + }, + { + "first_introduced": "20", + "name": "OH_NativeArkWeb_GetActiveWebEngineVersion" + }, + { + "first_introduced": "20", + "name": "OH_NativeArkWeb_IsActiveWebEngineEvergreen" } ] diff --git a/web/webview/interfaces/native/native_interface_arkweb.h b/web/webview/interfaces/native/native_interface_arkweb.h index 10332371c25cfc6edba29c677bbef88757d8712b..e90f5c060a1d639560e7d35538bcd53cb61e0f42 100644 --- a/web/webview/interfaces/native/native_interface_arkweb.h +++ b/web/webview/interfaces/native/native_interface_arkweb.h @@ -93,6 +93,41 @@ typedef struct { int32_t loadingTime; } ArkWeb_BlanklessInfo; +/** + * @brief ArkWeb Engine Version. + * + * ArkWeb Dual Web Engine Versioning Convention: + *

See [ArkWeb Dual Web Engine Versioning Convention] for switching between Legacy and Evergreen Web Engine. + * + * @since 20 + */ +typedef enum { + /** + * the system default ArkWeb engine. + * @since 20 + */ + SYSTEM_DEFAULT = 0, + + /** + * ArkWeb M114 version. + * @since 20 + */ + ARKWEB_M114 = 1, + + /** + * ArkWeb M132 version. + * @since 20 + */ + ARKWEB_M132 = 2, + + /** + * ArkWeb Evergreen Web Engine, always use the new ArkWeb Engine. + * Evergreen Web Engine. + * @since 20 + */ + ARKWEB_EVERGREEN = 99999, +} ArkWebEngineVersion; + /** * @brief Loads a piece of code and execute JS code in the context of the currently displayed page. * @@ -315,6 +350,37 @@ ArkWeb_ErrorCode OH_ArkWebCookieManager_SaveCookieSync(); */ void OH_ArkWebCookieManager_SaveCookieAsync(OH_ArkWeb_OnCookieSaveCallback callback); +/** + * Set active ArkWeb engine version. + * If the system does not support the specified version, it will not take effect. + * + * This is a global static API that must be called before initializeWebEngine, and it will have no effect if any + * Web components are loaded. + * + * Legacy Web Engine Compatibility Note: + *

When using legacy ArkWeb Engine, some ArkWeb newly created API will not take effect,
+ * see [Compatible with Legacy Web Engine in release note] for compatibility guidelines. + *

+ * + * @param { ArkWebEngineVersion } webEngineVersion - the ArkWebEngineVersion + * @since 20 + */ +void OH_NativeArkWeb_SetActiveWebEngineVersion(ArkWebEngineVersion webEngineVersion); + +/** + * Get currently active ArkWeb engine version. + * @return { ArkWebEngineVersion } Active ArkWeb Engine version as defined by ArkWebEngineVersion + * @since 20 + */ +ArkWebEngineVersion OH_NativeArkWeb_GetActiveWebEngineVersion(); + +/** + * Check if the currently active ArkWeb engine is Evergreen. + * @return { bool } true means the application is using the Evergreen Web Engine, false means not. + * @since 20 + */ +bool OH_NativeArkWeb_IsActiveWebEngineEvergreen(); + #ifdef __cplusplus }; #endif