HarmonyOS Web 触发新窗口时卡住

HarmonyOS
5天前
浏览
收藏 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
微信
回复
5天前
相关问题
如何用WebView创建新窗口
814浏览 • 1回复 待解决
如何在新窗口打开网页?
331浏览 • 1回复 待解决
手机直接卡住了,怎么强制重启
1658浏览 • 1回复 待解决
返回页面触发aboutToAppear
3620浏览 • 1回复 待解决
窗口启动的初始尺寸怎么设置
745浏览 • 1回复 待解决