首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >鸿蒙Flutter实战:04-如何使用DevTools调试Webview

鸿蒙Flutter实战:04-如何使用DevTools调试Webview

原创
作者头像
少湖说
发布2024-10-22 15:10:44
发布2024-10-22 15:10:44
6300
举报
文章被收录于专栏:鸿蒙Flutter实战鸿蒙Flutter实战

在《鸿蒙 Flutter 开发中集成 Webview》,介绍了如果在 Flutter 中集成 Webview. 本文则为 Webview 的调试方法。

配置 Webview

CustomView.ets 文件中,在生命周期aboutToAppear处配置允许调试:

代码语言:ets
复制
  aboutToAppear() {
    webview.WebviewController.setWebDebuggingAccess(true);
  }

找到 devtools 的端口

运行 App,使用 hdc 命令连接设备,查找相关端口

代码语言:bash
复制
# 连接设备
hdc shell

# 找到相关进程
cat /proc/net/unix | grep devtools

#0: 00000002 0 10000 1 1 2318187 @webview_devtools_remote_43406
#0: 00000002 0 10000 1 1 20785 @webview_devtools_remote_6312

如上面所示,webview_devtools_remote_43406 即为我们要调试的页面

开启端口转发

将设备中的端口转发到开发电脑上

代码语言:bash
复制
hdc fport tcp:9222 localabstract:webview_devtools_remote_43406

# Forwardport result:OK

在 Chrome 中找打 Webview 并开始调试

在 Chrome 中打开 chrome://inspect/#devices页面,观察页面中RemoteTarget 处出现了相关页面

选择需要调度的页面,点击 inspect,弹出 DevTools 窗口,开启页面调度

<!-- ![devtools](https://ximgs.oss-cn-hangzhou.aliyuncs.com/harmonyos-flutter-in-action/devtools.png) -->

其他

如果要在 Webview 注入 js 代码,可在 Web 组件配置处使用runJavaScript方法注入 JavaScript 脚本,如

代码语言:ets
复制
    Web({src: 'https://baidu.com', controller: this.webviewController})
      .domStorageAccess(true)
      .fileAccess(true)
      .mixedMode(MixedMode.All)
      .databaseAccess(true)
      .javaScriptAccess(true)
      .onPageEnd(() => {
          this.webviewController.runJavaScript("document.querySelector('meta[http-equiv=\"Content-Security-Policy\"]').remove()");
      })

参考资料

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置 Webview
  • 找到 devtools 的端口
  • 开启端口转发
  • 在 Chrome 中找打 Webview 并开始调试
  • 其他
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档