参考demo:import { webview } from '@kit.ArkWeb'; @Entry @Component struct WebComponent { controller1: webview.WebviewController = new webview.WebviewController(); controller2: webview.WebviewController = new webview.WebviewController(); @State flag:boolean = false build() { Stack() { Web({ src: $rawfile('index4.html'), controller: this.controller1 }) .onPageEnd(() => { console.log("加载第一个web组件") }) .javaScriptAccess(true) .domStorageAccess(true) .onLoadIntercept((event) => { if (event.data.getRequestUrl() === 'xxx') { this.flag = true } else { this.flag = false } return false; }) if (this.flag) { Web({ src:'xxxx', controller: this.controller2 }) .onPageEnd(() => { console.log("加载第二个web组件") }) .javaScriptAccess(true).domStorageAccess(true).mixedMode(MixedMode.All).zIndex(999) } } } onBackPress() { try { if (this.flag) { if (this.controller2.accessBackward()) { this.controller2.backward() }else { this.flag = false } return true }else { if (this.controller1.accessBackward()) { this.controller1.backward() return true } } } catch (error) { console.error(`ErrorCode: ${error?.code}, Message: ${error?.message}`); } return false } }h5:<!-- index.html --> <!DOCTYPE html> <html> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <script src="xxx"></script> <script> window.vConsole = new window.VConsole() </script> <body> Hello world! <a href="xxx">打开xxx</a> <a href="/index.html">打开其他页面</a> </body> <script> </script> </html>
参考demo:
h5: