diff --git a/src/main/ets/pages/XWebview.ets b/src/main/ets/pages/XWebview.ets index b970e84..3d74398 100644 --- a/src/main/ets/pages/XWebview.ets +++ b/src/main/ets/pages/XWebview.ets @@ -48,17 +48,16 @@ export struct XWebview { XWebManager.onClose(() => { router.back() }) - if (this.xController) { - this.xController.getUrl = () => { - return this.controller.getUrl() - } - this.xController.getTitle = () => { - return this.controller.getTitle() - } - this.xController.refresh = () => { - this.controller.refresh() - } + XWebManager.onGetUrl = () => { + return this.controller.getUrl() } + XWebManager.onGetTitle = () => { + return this.controller.getTitle() + } + XWebManager.onRefresh = () => { + this.controller.refresh() + } + SZYXLocalStorageHelper.storage.setOrCreate('refresh_web_base', -1) SZYXLocalStorageHelper.storage.setOrCreate(SZYXLocalStorageKeys.XWebViewCLose, undefined) @@ -135,7 +134,7 @@ export struct XWebview { Button({ buttonStyle: ButtonStyleMode.TEXTUAL }) { if (this.clickMenu?.img) { Image(this.clickMenu?.img) - .width(15).height(15) + .width(15).height(15).objectFit(ImageFit.Contain) } else if (this.clickMenu?.text) { Text(this.clickMenu.text) .fontColor(this.clickMenu?.color ?? '#17171A') @@ -152,7 +151,7 @@ export struct XWebview { }.width(65) .onClick(() => { if (this.clickMenu) { - this.clickMenu?.onClick && this.clickMenu?.onClick() + XWebManager.menuClick() return } if (this.dialogController != null) { diff --git a/src/main/ets/utils/XWebHelper.ets b/src/main/ets/utils/XWebHelper.ets index 5ad52d1..df55df7 100644 --- a/src/main/ets/utils/XWebHelper.ets +++ b/src/main/ets/utils/XWebHelper.ets @@ -64,6 +64,18 @@ export class XWebHelper { params.controller.sendMessage = (msg) => { XWebManager.sendMessageToHtml(msg) } + params.controller.getUrl = (): string => { + return XWebManager.getUrl(); + } + params.controller.getTitle = (): string => { + return XWebManager.getTitle(); + } + params.controller.refresh = () => { + XWebManager.refresh() + } + } + if (params.clickMenu){ + XWebManager.menuClick = params.clickMenu.onClick } if (params.jsParams && params.jsParams.obj) { diff --git a/src/main/ets/utils/XWebManager.ets b/src/main/ets/utils/XWebManager.ets index 9cde610..578bec5 100644 --- a/src/main/ets/utils/XWebManager.ets +++ b/src/main/ets/utils/XWebManager.ets @@ -2,6 +2,9 @@ import { ToolsHelper } from './ToolsHelper'; export class XWebManager { private static closeCall?: () => void; + static onGetUrl: () => string; + static onGetTitle: () => string; + static onRefresh: () => void; static onClose(call: () => void) { XWebManager.closeCall = call @@ -11,6 +14,18 @@ export class XWebManager { XWebManager.closeCall && XWebManager.closeCall() } + static getUrl() { + return XWebManager.onGetUrl() + } + + static getTitle() { + return XWebManager.onGetTitle() + } + + static refresh() { + XWebManager.onRefresh() + } + private static MapEventListener = new Map void>(); static objs: Map = new Map() @@ -32,6 +47,7 @@ export class XWebManager { } } + static menuClick: () => void private static MapEventListenerToHtml = new Map void>(); static addOnMessageToHtml(id: string, listener: (msg: string) => void) {