36

我有一个在 iOS 上运行良好但在 Android 上运行良好的 webview。有没有一种工具可以让我在浏览器中连接到 Android webview 并使用 firefox 或 webkit 控制台对其进行调试?目前我不知道是什么导致 webview 在 Android 中不起作用。

在 iOS 中,我可以打开我的 iPad 或 iPhone 模拟器,打开 webview 窗格,然后在我的桌面浏览器中监听端口 9999,它向我展示了你在 webkit 开发工具/调试工具中看到的工具。

我正在为 Android 寻找类似的工具,或者至少让我开始调试。

4

8 回答 8

25

调试 WebView 最简单的方法是通过 USB 将您的 Android 设备连接到 PC,并使用 Chrome 开发工具检查您的 WebView。

因此,您将需要:

1)在我们的设备上激活 USB 调试。你可以找到它Settings >> Developer Options >> Debugging >> USB Debugging(激活复选框)

2)通过 USB 将您的设备连接到计算机

注意:如果您在 Windows 上进行开发,请为您的设备安装适当的 USB 驱动程序。请参阅Android 开发者网站上的OEM USB 驱动程序。

3)打开 Chrome 浏览器并在 URL 字段中输入:chrome://inspect/#devices

4)确认“发现 USB 设备”已激活

5)在您的设备上,警报会提示您允许从您的计算机进行 USB 调试。点击确定。

6)在 chrome://inspect 页面上显示每个连接的设备。单击inspect连接的设备,您将获得控制台。

更详细的手册是Debugging Android WebView

于 2016-05-31T21:19:27.220 回答
16

签出weinre。它提供了类似于 Chrome 开发人员的工具,用于从 WebKit 浏览器调试到在远程设备上运行的浏览器。

于 2012-05-12T01:00:48.943 回答
9

如果您不使用 Android 4.4,根据http://developer.android.com/guide/webapps/debugging.html,您将享受老式的调试方式......

如果您没有运行 Android 4.4 或更高版本的设备,您可以使用控制台 JavaScript API 调试您的 JavaScript 并查看输出到 logcat 的消息。

对于 Android 4.4 及更高版本,您将享受远程调试,请参阅https://developers.google.com/chrome-developer-tools/docs/remote-debugging#debugging-webviews

从 Android 4.4 (KitKat) 开始,您可以使用 DevTools 在原生 Android 应用程序中调试 Android WebViews 的内容。

于 2014-01-08T23:48:14.960 回答
9

这些是我用来调试WebView设备中内容的步骤:

  1. 在您的设备中启用开发者模式
  2. 将设备插入PC并启用USB调试(如果需要安装驱动程序)
  3. Application在您的自定义类或Activity加载 web 视图的位置添加此行

    //if your build is in debug mode, enable webviews inspection
    WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG);
    
  4. 打开 Chrome 并转到chrome://inspect,您应该会在远程目标列表中看到您的设备

  5. 从 Android Studio 开始调试您的应用
  6. 当 aWebView被添加到布局中时,在您打开的选项卡中会出现一个带有 Inspect 按钮的屏幕截图,点击那里将打开一个 Chrome 开发者控制台
于 2017-07-14T10:31:39.227 回答
1

如果您正在寻找调试在 webview 中运行的 javascript 代码的解决方案,请查看 jsHybugger - 用于 Android webviews 的 JavaScript/HTML5/CSS 调试器。

http://www.jsHybugger.org

于 2013-06-14T17:54:07.687 回答
0

我在以前的项目中使用 javascript 处理过 webview,我遇到了同样的问题。我还没有找到直接调试代码的方法,但我使用了 javascript 接口将信息发送到我的活动。通过这种方式,您可以记录 javascript 的活动或显示一些 Toast 消息。

当您的 java 方法没有被调用时,通常意味着您在 JS 代码中犯了某种错误。

我知道这不是解决您的问题的高科技解决方案,但至少是这样,并且对我有用。

祝你好运,沃塔

于 2012-05-09T07:51:58.080 回答
0

尝试OutFront JS

它将控制台消息记录到屏幕上。对调试移动浏览器很有帮助。

它有助于:

  • 捕获移动浏览器中的警告、消息和错误。
  • 项目清单

适用于所有移动浏览器,甚至是中文浏览器。

于 2021-06-10T12:25:05.937 回答
-1

尝试通过在桌面上安装 adb 来访问设备的 ADB Logcat...

于 2012-05-08T23:06:58.213 回答