中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
微信扫码分享
import webview from '@ohos.web.webview' import router from '@ohos.router' @Entry @Component struct WebDemo { controller = new webview.WebviewController getUrl(): string { const params = router.getParams() as Record<string, string> return params?.url ?? 'https://www.huawei.com/appview/question/56402307?appview=1' } build() { Column() { Web({ src: this.getUrl(), controller: this.controller, }) .height('100%') .width('100%') .multiWindowAccess(true) .onWindowNew((e) => { console.log('onWindowNew', e.targetUrl) router.pushUrl({ url: 'pages/WebDemo', params: { url: e.targetUrl, }, }) //关键代码 //将新窗口对应WebviewController返回给Web内核。 //如果不需要打开新窗口请调用event.handler.setWebController接口设置成null。 //若不调用event.handler.setWebController接口,会造成render进程阻塞。 e.handler.setWebController(null) }) } } }