From d94beffb91b3de9632bbf1e7b1b766b642a704ea Mon Sep 17 00:00:00 2001 From: DreamLoveJay Date: Fri, 12 Sep 2025 00:57:42 +0800 Subject: [PATCH] =?UTF-8?q?ArkTS1.2=20Web=E7=BB=84=E4=BB=B6=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: DreamLoveJay --- .../arkui-ohos/generated/component/web.ets | 33 ++++++++++++++----- .../generated/framework/arkts/type_check.ets | 4 +++ 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/generated/component/web.ets b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/generated/component/web.ets index fbcf8bebed3..d736c741f26 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/generated/component/web.ets +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/generated/component/web.ets @@ -40,6 +40,9 @@ import { WebModifier } from "./../WebModifier" import { NodeAttach, remember } from "@koalaui/runtime" import { image_PixelMap_serializer } from "./../framework/ohos.multimedia.image" import { webview_WebviewController_serializer } from "./../framework/ohos.web.webview" +// import { WebviewController, WebviewControllerInternal } from "./arkui-external" +import { WebviewController as WebviewControllerAni } from "#external" +import { ArkUIAniModule } from "arkui.ani" export class ClientAuthenticationHandlerInternal { public static fromPtr(ptr: KPointer): ClientAuthenticationHandler { return new ClientAuthenticationHandler(ptr) @@ -1247,8 +1250,17 @@ export class ArkWebPeer extends ArkCommonMethodPeer { } setWebOptionsAttribute(value: WebOptions): void { const thisSerializer : SerializerBase = SerializerBase.hold() - WebOptions_serializer.write(thisSerializer, value) - ArkUIGeneratedNativeModule._WebInterface_setWebOptions(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) + if (TypeChecker.isWebviewControllerAni(value.controller)) { + const value_casted = { + src: value.src, + renderMode: value.renderMode, + incognitoMode: value.incognitoMode, + sharedRenderProcessToken: value.sharedRenderProcessToken + } as (WebOptionsSerializer) + WebOptions_serializer.write(thisSerializer, value_casted) + ArkUIGeneratedNativeModule._WebInterface_setWebOptions(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) + ArkUIAniModule._Web_SetWebOptions(this.peer.ptr, value.controller) + } thisSerializer.release() } setJavaScriptAccessAttribute(value: boolean | undefined): void { @@ -2978,7 +2990,13 @@ export interface Header { } export interface WebOptions { src: string | Resource; - controller: webview.WebviewController; + controller: WebviewControllerAni; + renderMode?: RenderMode; + incognitoMode?: boolean; + sharedRenderProcessToken?: string; +} +export interface WebOptionsSerializer { + src: string | Resource; renderMode?: RenderMode; incognitoMode?: boolean; sharedRenderProcessToken?: string; @@ -6664,7 +6682,7 @@ export class WebMediaOptions_serializer { } } export class WebOptions_serializer { - public static write(buffer: SerializerBase, value: WebOptions): void { + public static write(buffer: SerializerBase, value: WebOptionsSerializer): void { let valueSerializer : SerializerBase = buffer const valueHolderForSrc = value.src if (valueHolderForSrc instanceof string) { @@ -6676,8 +6694,6 @@ export class WebOptions_serializer { const valueHolderForSrcForIdx1 = valueHolderForSrc as Resource Resource_serializer.write(valueSerializer, valueHolderForSrcForIdx1) } - const valueHolderForController = value.controller - webview_WebviewController_serializer.write(valueSerializer, valueHolderForController) const valueHolderForRenderMode = value.renderMode if (valueHolderForRenderMode !== undefined) { valueSerializer.writeInt8(RuntimeType.OBJECT) @@ -6703,7 +6719,7 @@ export class WebOptions_serializer { valueSerializer.writeInt8(RuntimeType.UNDEFINED) } } - public static read(buffer: DeserializerBase): WebOptions { + public static read(buffer: DeserializerBase): WebOptionsSerializer { let valueDeserializer : DeserializerBase = buffer const srcTmpBufUnionSelector : int32 = valueDeserializer.readInt8() let srcTmpBuf : string | Resource | undefined @@ -6715,7 +6731,6 @@ export class WebOptions_serializer { throw new Error("One of the branches for srcTmpBuf has to be chosen through deserialisation.") } const srcTmpResult : string | Resource = (srcTmpBuf as string | Resource) - const controllerTmpResult : webview.WebviewController = (webview_WebviewController_serializer.read(valueDeserializer) as webview.WebviewController) const renderModeTmpBuf_runtimeType = valueDeserializer.readInt8().toInt() let renderModeTmpBuf : RenderMode | undefined = undefined if ((renderModeTmpBuf_runtimeType) != (RuntimeType.UNDEFINED)) { @@ -6734,7 +6749,7 @@ export class WebOptions_serializer { sharedRenderProcessTokenTmpBuf = (valueDeserializer.readString() as string) } const sharedRenderProcessTokenTmpResult : string | undefined = sharedRenderProcessTokenTmpBuf - let value : WebOptions = ({src: srcTmpResult, controller: controllerTmpResult, renderMode: renderModeTmpResult, incognitoMode: incognitoModeTmpResult, sharedRenderProcessToken: sharedRenderProcessTokenTmpResult} as WebOptions) + let value : WebOptionsSerializer = ({src: srcTmpResult, renderMode: renderModeTmpResult, incognitoMode: incognitoModeTmpResult, sharedRenderProcessToken: sharedRenderProcessTokenTmpResult} as WebOptionsSerializer) return value } } diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/generated/framework/arkts/type_check.ets b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/generated/framework/arkts/type_check.ets index ed0b13cdc72..3cf5b42f9f3 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/generated/framework/arkts/type_check.ets +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/generated/framework/arkts/type_check.ets @@ -189,6 +189,7 @@ import { ConnectOptions } from "ability.connectOptions" import { default as AbilityStartCallback } from "application.AbilityStartCallback" import { default as AtomicServiceOptions } from "@ohos.app.ability.AtomicServiceOptions" import { TextBackgroundStyle } from "./../../component/span" +import { WebviewController as WebviewControllerAni } from "#external" export class TypeChecker { static typeInstanceOf(value: Object, prop: string): boolean { return value instanceof T @@ -3205,6 +3206,9 @@ export class TypeChecker { static iswebview_WebviewController(value: Object | string | number | undefined): boolean { return value instanceof webview.WebviewController } + static isWebviewControllerAni(value: object|string|number|undefined|null): boolean { + return value instanceof WebviewControllerAni + } static isWeek(value: Object | string | number | undefined): boolean { return value instanceof Week } -- Gitee