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

标签 android webview webkit remote-debugging web-inspector

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

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

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

服务器默认端口为9999

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

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

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

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

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

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

干杯, 啤酒。

最佳答案

For android >= 4.4 (kitkat)

参见 Remote debugging on Android with Chrome

For android < 4.4 (Lower versions)

使用非常好的开源工具:weinre .参见 this视频帮助使用它。 如果您熟悉 grunt,那么您可以使用 grunt-weinre

快速查看:

  1. 使用 npm 安装 weinre
  2. 执行 configuration在你的 grunt 文件中。
  3. 运行 weinre grunt 任务。
  4. 使用此脚本将 weinre 目标代码注入(inject)您的网页。
  1. 打开http://localhost:8082在您的浏览器中,您会发现设备运行在脚本之上。您可以调试所有这些设备。

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

关于android - 如何使用 WebView 启用 WebKit 的 Android 应用程序远程调试/检查器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13801819/

相关文章:

android - 如何在没有加速度计传感器的情况下启动相机 Intent ?

android - Android 4.4 浏览器/webview 上的 HTML5 日期输入

objective-c - 获取 Cocoa 的 WebView 的当前 URL

android - 如何处理 Intent ://on a webView URL?

android - 我的新 Android 虚拟设备无法运行

java - 在 WebView 中加载上次查看的页面

javascript - 在不停止的情况下更改 webkit css 转换的位置/目标值?

css - 多个 webkit 动画

CSS 浏览器特定边距

android - Okhttp3,如果为 IP 地址颁发 SSL 证书,则无法验证主机名