在Android平板电脑/手机上调试JavaScript?

14

如何在Android浏览器上像在iOS的Safari浏览器中那样启用调试视图?我只需要查看我正在测试页面的Xoom是否生成JavaScript错误。我试图找到类似于iOS中启用开发工具的方法,但似乎无法找到。

7个回答

13

我曾经参与过一个Android应用程序的开发,在这个项目中,Java开发人员设置了警报JavaScript错误的功能,这让我们在iOS版本中没有发现的一个额外的bug被捕捉到了。所以,如果你可以访问Java层,那么我建议你去检查一下。我询问了他具体做了什么,他说:

"WebView类有一个回调函数,可以让我知道JS代码何时抛出错误。我实现了这个回调函数来显示一个Android对话框。"

除此之外,我还使用了另外两种解决方案来进行调试(iOS / Android),这些方法特别适用于嵌入游戏中的Web视图,因为你无法访问内置控制台:

1)Weinre是一个尚处于测试阶段但功能正常的远程调试工具。它会在你的桌面上提供一个虚拟的检查器,你可以查询/查看远程设备上的错误信息,包括DOM检查器和其他任何内容。该工具的开发人员非常负责。

2)我编写了一个JavaScript日志函数,将错误记录在我的服务器错误日志中。只需使用tail命令跟踪你的日志文件即可。我的JavaScript函数大致如下:

function hlog(){
    var s = Array.prototype.slice.apply(arguments).join('¶');
    document.createElement('img').src = 'http://yourdevbox/debugger/?m=' + encodeURIComponent(s);
}

这样我就可以接收任意数量的参数。 我的 PHP 页面接收到该请求后的代码如下:

# ensure this can't be used in production 
if (strpos($GLOBALS['HTTP_HOST'], 'devboxhostname') < 0) die(':(');
error_log($_GET['m']);

希望在未来,移动开发者能够拥有更好的调试工具。

+1百万。Weinre非常棒。适用于移动设备的Webkit开发工具。 - maxedison
1
很棒的答案。我已经开始使用weinre了,它很有用,但似乎不会将任何JavaScript错误打印到控制台。我正在使用phonegap进行开发,如果这有所不同,请给予建议? - SilithCrowe
@Mauvis Ledford:“WebView类有一个回调函数,可以让我知道JS代码何时抛出错误。我实现了该回调函数以显示Android对话框。”这个方法的名称是什么?如果不是机密的话 :) - Artem Oboturov
Artem: 抱歉我不知道了,而且我已经不在那家公司工作了。 - Mauvis Ledford

5

Android目前还没有像Chrome/Chromium那样的WebInspector。

您仍然可以在logcat中查看通过window.console触发的任何console.log()消息。

来源:http://developer.android.com/guide/webapps/debugging.html

此外,虽然Firefox 4可用于Android,但Firebug当前不支持移动版浏览器。


1
最简单的记录JS输出并查看日志的方法。 - NightWatchman

5

1
哇,我很惊讶它是那么容易的。谢谢! - David Sherret
3
注意,这是针对股票浏览器的,而不是Chrome浏览器。 - Matt Kantor
这是针对基于Webkit的股票浏览器,而不是新的基于Chromium的股票浏览器(4.2+)。 - cde

2

最好的方法是使用console.log()(像firebug一样),然后在手机上安装一个日志查看器,根据browser进行过滤,这样就可以看到所有的console消息。(来源


1

您不需要安装任何软件或在手机屏幕上尝试调试。首先在您的设备中的“开发者选项”中启用USB调试,然后使用您的桌面Chrome来连接和调试移动浏览器。

我发现最简单的方法是在手机/平板电脑上启用USB调试,然后在桌面上使用Chrome浏览器导航到

chrome://inspect/#devices

启用发现USB设备,然后在应用列表中点击“检查”

哇!远程调试!现在您可以在桌面舒适地调试您的手机。


1

1

尝试使用Weinre:Web Inspector Remote / 观看演示

"Weinre是一个用于网页调试的工具,类似于FireBug(适用于FireFox)和Web Inspector(适用于基于WebKit的浏览器),但它被设计为远程工作,并且特别适用于允许您在移动设备上调试网页,例如手机。"

您可以查看一些其他远程调试工具:jsconsoleAardwolf


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接