From 3752229689852b198bb2ac146cc8e5e0e60c7749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Wed, 21 May 2025 16:37:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(XWebview):=20=E6=96=B0=E5=A2=9E=E7=BD=91?= =?UTF-8?q?=E9=A1=B5=E8=8F=9C=E5=8D=95=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=9B=B8=E5=85=B3=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 WebMenuView 组件,用于显示网页菜单 - 在 MiniAppManager 中集成 WebMenuView,并添加菜单控制器 - 修改 HomeView 中的文章详情跳转逻辑 - 在 XWebview 中实现 getUrl、refresh 和 getTitle 接口方法 --- src/main/ets/pages/XWebview.ets | 15 +++++++++++++-- src/main/ets/utils/XWebHelper.ets | 3 +++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/ets/pages/XWebview.ets b/src/main/ets/pages/XWebview.ets index 5efbdb3..b970e84 100644 --- a/src/main/ets/pages/XWebview.ets +++ b/src/main/ets/pages/XWebview.ets @@ -45,9 +45,20 @@ export struct XWebview { } aboutToAppear(): void { - XWebManager.onClose(()=>{ + 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() + } + } SZYXLocalStorageHelper.storage.setOrCreate('refresh_web_base', -1) SZYXLocalStorageHelper.storage.setOrCreate(SZYXLocalStorageKeys.XWebViewCLose, undefined) @@ -141,7 +152,7 @@ export struct XWebview { }.width(65) .onClick(() => { if (this.clickMenu) { - this.clickMenu.onClick() + this.clickMenu?.onClick && this.clickMenu?.onClick() return } if (this.dialogController != null) { diff --git a/src/main/ets/utils/XWebHelper.ets b/src/main/ets/utils/XWebHelper.ets index 9a658c6..5ad52d1 100644 --- a/src/main/ets/utils/XWebHelper.ets +++ b/src/main/ets/utils/XWebHelper.ets @@ -11,6 +11,9 @@ const XWebview = import('../pages/XWebview'); export interface XWebController { sendMessage: (message: string) => void + getUrl: () => string + refresh: () => void + getTitle: () => string } export interface XWebJsController {