#鸿蒙通关秘籍#在鸿蒙系统下如何使用多窗口打开Web页面?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
JSON梦幻探险家

可以通过multiWindowAccess()接口启用多窗口功能,并处理onWindowNew()事件: bash import { webview } from '@kit.ArkWeb';

@CustomDialog struct NewWebViewComp { controller?: CustomDialogController; webviewController1: webview.WebviewController = new webview.WebviewController();

build() { Column() { Web({ src: "", controller: this.webviewController1 }) .javaScriptAccess(true) .multiWindowAccess(false) .onWindowExit(() => { console.info("NewWebViewComp onWindowExit"); if (this.controller) { this.controller.close(); } }) } } }

@Entry @Component struct WebComponent { controller: webview.WebviewController = new webview.WebviewController(); dialogController: CustomDialogController | null = null;

build() { Column() { Web({ src: $rawfile("window.html"), controller: this.controller }) .javaScriptAccess(true) .multiWindowAccess(true) .allowWindowOpenMethod(true) .onWindowNew((event) => { if (this.dialogController) { this.dialogController.close() } let popController: webview.WebviewController = new webview.WebviewController(); this.dialogController = new CustomDialogController({ builder: NewWebViewComp({ webviewController1: popController }) }) this.dialogController.open(); event.handler.setWebController(popController); }) } } }

分享
微博
QQ
微信
回复
1天前
相关问题
鸿蒙系统怎么打开定位开关页面
10369浏览 • 1回复 待解决