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

田楷
• 阅读 10

鸿蒙 Flutter 如何使用 DevTools 调试 Webview

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

配置 Webview

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

aboutToAppear() {
  webview.WebviewController.setWebDebuggingAccess(true);
}

找到 devtools 的端口

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

# 连接设备
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 即为我们要调试的页面

开启端口转发

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

hdc fport tcp:9222 localabstract:webview_devtools_remote_43406

# Forwardport result:OK

在 Chrome 中找打 Webview 并开始调试

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

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

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

其他

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

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()");
  })

参考资料

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Flutter
在Flutter加载网页?也是有WebView的哦,和Android一样1.添加依赖dependencies:flutter\_webview\_plugin:^0.2.122.导入库import'import'package:flutter\_webview\_plugin/flutter\_webview\_plug
田楷 田楷
9小时前
鸿蒙Flutter实战:01-搭建开发环境
鸿蒙Flutter实战:01搭建开发环境
田楷 田楷
9小时前
鸿蒙Flutter实战:03-鸿蒙Flutter开发中集成Webview
鸿蒙Flutter开发中集成Webview主要有两种方案使用第三方库如使用flutterinappwebview插件,在pubspec.lock文件中配置:yamlflutterinappwebview:git:url:https://gitee.com/
田楷 田楷
9小时前
鸿蒙Flutter实战:05-使用第三方插件
鸿蒙Flutter实战:使用第三方插件在鸿蒙Flutter开发中,如果涉及到使用原生功能,就要使用插件。使用插件有两种方式,一种是自己编写原生ArkTS代码,在Dart侧调用。另外一种是使用第三方代码。方式一:编号原生ArkTS代码该方案可以使用Platf
田楷 田楷
9小时前
鸿蒙Flutter实战:06-使用ArkTs开发Flutter鸿蒙插件
使用ArkTs开发Flutter鸿蒙平台插件本文讲述如何开发一个Flutter鸿蒙插件,如何实现Flutter与鸿蒙的混合开发,以及双端消息通信。Flutter侧,编写MethodChanneldartconstMethodChannelmethodCha
田楷 田楷
9小时前
鸿蒙Flutter实战:07-混合开发
鸿蒙Flutter实战:混合开发鸿蒙Flutter混合开发主要有两种形式。1.基于har将fluttermodule打包成har包,在原生鸿蒙项目中,以har包的方式引入。其优点是主项目开发者可以不关注Flutter实现,不需要安装配置Flutter开发环
田楷 田楷
9小时前
鸿蒙Flutter实战:08-如何调试代码
鸿蒙Flutter实战:如何调试代码1.环境搭建参考文章搭建好开发环境。IDE安装好DevEco和VsCode/AndroidStudio。2.配置如果是vscode,可以在.vscode/launch.json文件中,增加以下配置json"name":"
田楷 田楷
9小时前
鸿蒙Flutter实战:09-现有Flutter项目支持鸿蒙
鸿蒙Flutter实战:现有Flutter项目支持鸿蒙背景原来使用Flutter开发的项目,需要适配鸿蒙。环境搭建见文章[鸿蒙Flutter适配指南],搭建开发环境,使用fvm管理多版本SDK。模块化原有项目保持模块化,拆分为apps/common/com
田楷 田楷
9小时前
鸿蒙Flutter实战:10-常见问题集合
鸿蒙Flutter实战:10常见问题集合1.学习路径应该是怎样的,需要掌握哪些技术才具备鸿蒙Flutter开发能力1.1学习和掌握Flutter开发技术,这块需要在Flutter社区学历1.2学习鸿蒙基础概念和知识,推荐学习,,,2.MatePad应用适配
田楷 田楷
9小时前
鸿蒙Flutter实战:12-使用模拟器开发调试
鸿蒙Flutter实战:使用模拟器开发调试前提开发电脑需为M系列芯片(ARM架构)的Mac电脑目前Flutter鸿蒙开发,无法使用X86架构的模拟器,只能使用ARM架构的模拟器创建项目等开发环境搭建成功,使用fluttercreate命令创建项目新项目ba