如何使用 WebView 启用 WebKit 的 Android 应用程序的远程调试/检查器?

Posted

技术标签:

【中文标题】如何使用 WebView 启用 WebKit 的 Android 应用程序的远程调试/检查器?【英文标题】:how to enable WebKit's remote debugging/inspector of Android app using WebView? 【发布时间】:2012-11-27 22:01:25 【问题描述】:

我需要检查 android 应用程序中的 javascript 执行(webview 小部件), 调试时;通过 SDK 和 USB 电缆和/或 http/websockets; 从桌面计算机(例如桌面上运行的 chrome)。

Webkit 的源代码包括 DebuggerServer 实现 ( platform_external_webkit\Source\WebKit\android\wds\DebugServer.cpp ) 可在 cpp 级别访问,如果启用标志 WDS 则绑定(在构建时?)

Source\WebKit\android\jni\WebCoreFrameBridge.cpp:#if ENABLE(WDS) Source\WebKit\android\jni\WebCoreFrameBridge.cpp: WDS::server()->addFrame(frame);

服务器的默认端口是 9999

消息来源显示所有已实现(在 Cpp 级别)以启用该功能, 但我没有找到任何参考在网上搜索经验 在 android 设备自动化中使用 javascript 级别的实时调试 webkit 的检查器界面。

1.- 该功能是否以二进制形式在实际的 android 设备中执行? (是否在未启用 WDS 标志的情况下构建了 adroid 的 webkit 分发?:-( )

2.- 可以从 javascript 或应用程序启用/使用远程调试功能吗 (在java级别)例如在应用启动时?

3.- 如果可以启用 webkit 检查器/调试器功能, 如何使远程应用程序交互成为可能? (例如从 另一个使用 websockets 的 javascript 应用程序,或桌面计算机上的 chrome)。

一些解释机制的段落,如 https://developers.google.com/chrome-developer-tools/docs/remote-debugging#remote 会很好!

提前感谢您提供有关此主题的任何信息或参考。 我认为启用远程调试(在设备中)很重要 javascript 级别使 html5 的现代开发成为可能 应用程序和愉快的调试体验。

干杯, 麦芽酒。

【问题讨论】:

Debug xwalkview or webview remotely 【参考方案1】:

适用于 Android >= 4.4 (kitkat)

见Remote debugging on Android with Chrome

适用于 android

使用非常好的开源工具:weinre。有关使用它的帮助,请参阅 this 视频。 如果你熟悉 grunt 那么你可以使用grunt-weinre

快速查看:

    使用 npm 安装 weinre 在您的 gruntfile 中执行 configuration。 运行 weinre grunt 任务。 使用此脚本将 weinre 目标代码注入您的网页。
    在浏览器中打开http://localhost:8082,您会发现运行上述脚本的设备。您可以调试所有这些设备。

注意:如果您想在您的移动设备中调试 webview/浏览器,那么您需要将 localhost 替换为您的机器运行 weinre 的 IP。是的,所有设备都应该在同一个网络上。

【讨论】:

非常感谢!!在您的回答、视频链接、weinre 和 grunt-weinre 的帮助下,我能够调试在 android 上运行的 ionic WebView 【参考方案2】:

现在使用 Android 4.4 很容易。见https://developers.google.com/chrome-developer-tools/docs/remote-debugging#debugging-webviews

【讨论】:

很好,但是Android 【参考方案3】:

您可以使用weinre 项目针对Android 浏览器进行远程调试。或者在 Chrome for Android 浏览器中使用 Chrome remote debugging。据我所知,您不能直接定位 WebView,但定位 Android 浏览器应该会让您接近。

【讨论】:

【参考方案4】:

无法完成,因为调试器后端代码不存在。您引用的源代码是 android 中 webkit 源代码的副本,但它没有编译成 android 发布位。

【讨论】:

【参考方案5】:

Pre KitKat jsHyBugger 运行良好(试用版和年度单用户许可证 29 欧元)

(我与开发者无关/已购买许可证)

【讨论】:

以上是关于如何使用 WebView 启用 WebKit 的 Android 应用程序的远程调试/检查器?的主要内容,如果未能解决你的问题,请参考以下文章

Swift WebKit 画中画

如何使用 Swift 制作具有 iPhone X 安全区域约束的 Webkit webView?

error inflating class android.webkit.webview怎样解决

Webview/Webkit 未按预期工作

如何在 webView 中启用 javascript

如何在电子 webview 中启用节点集成?