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)
        })
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
分享
微博
QQ
微信
回复
2024-12-17 16:32:12
相关问题
如何用WebView创建新窗口
1357浏览 • 1回复 待解决
如何在新窗口打开网页?
785浏览 • 1回复 待解决
HarmonyOS 使用slice处理buffer卡住问题
583浏览 • 1回复 待解决
手机直接卡住了,怎么强制重启
2228浏览 • 1回复 待解决
返回页面触发aboutToAppear
4768浏览 • 1回复 待解决
窗口启动的初始尺寸怎么设置
1395浏览 • 1回复 待解决