文章      动态     相关文章     最新文章     手机版动态     相关动态     |   首页|会员中心|保存桌面|手机浏览

b6c7yx

http://www78564.xrbh.cn/comb6c7yx/

相关列表
文章列表
  • 暂无文章
推荐文章
通过 Chrome devtools protocol 和 adb 调试 Android Webview连接手机「通过 Chrome devtools protocol 和 adb 调试 Androi
发布时间:2025-01-14        浏览次数:0        返回列表

这个技术可以用于 UI 自动化等,用脚本自动控制 Android webview 或注入 js 执行。

前提条件:usb 连接手机,adb 能查找到 devices,如果有问题,多拔插几次,确认授权。

第一步,确认安卓 App 编译时已经启用了webview 允许调试(一般是允许的,可以通过连接usb,打开chrome的inspect页面(chrome://inspect/#devices),能连上就表示允许调试了)

第二步,查找进程 pid

使用命令: adb shell grep -a webview_devtools_remote /proc/net/unix

第三步,绑定进程消息到电脑的端口

使用命令: adb forward tcp:9222 localabstract:webview_devtools_remote_{pid}

第四步,验证绑定情况。

使用命令: curl localhost:9222/json/version

使用命令: curl localhost:9222/json/list

可以获得当前网页信息和调试用的websocket链接

第五步,通过websocket发送CDP(chrome devtools protocol)指令(使用上述 list 出来的页面 webSocketDebuggerUrl)

下边的是 nodejs 代码,引用了 ws npm包。

打印结果:received: {"id":1,"result":{"result":{"type":"string","value":""}}}

再往后,可以使用一些现成的高级别api库,例如puppeteer实际就是基于CDP的一个库,但它只支持内置的chromium,无法用来调试外部浏览器。

按介绍说, 是一个相关的库,但实际使用时总无法连上ws。

如果直接更成熟的整套体系,例如 Appium,那就更方便了,这种工具已经把上述流程都内置了,参考:

参考资料: