HarmonyOS Web 触发新窗口时卡住

HarmonyOS
2024-12-17 14:30:36
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa
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)
        })
    }
  }
}
分享
微博
QQ
微信
回复
2024-12-17 16:32:12
相关问题
如何用WebView创建新窗口
1010浏览 • 1回复 待解决
如何在新窗口打开网页?
500浏览 • 1回复 待解决
HarmonyOS 使用slice处理buffer卡住问题
253浏览 • 1回复 待解决
手机直接卡住了,怎么强制重启
1889浏览 • 1回复 待解决
返回页面触发aboutToAppear
4069浏览 • 1回复 待解决
窗口启动的初始尺寸怎么设置
1084浏览 • 1回复 待解决