我在做一个和拉斐尔有关的项目。事实证明,它在Android上不起作用。iPhone上是这样的。
我该怎么调试Android浏览器上的东西呢?它是WebKit,所以如果我知道版本,在完整版本的WebKit上调试它会产生相同的结果吗?
我在做一个和拉斐尔有关的项目。事实证明,它在Android上不起作用。iPhone上是这样的。
我该怎么调试Android浏览器上的东西呢?它是WebKit,所以如果我知道版本,在完整版本的WebKit上调试它会产生相同的结果吗?
当前回答
你可以试试npm library中的"javascript-compiler-deva",先运行"npm install javascript-compiler-deva"命令,然后运行编译器。正在使用"node compiler.js"。
它在端口8888上创建一个服务器。然后,您可以点击“http://localhost:8888”并输入JavaScript代码,就可以在手机浏览器中看到包括“console.log”在内的任何JavaScript代码的结果。
它也托管在“https://javascript-compiler-deva.herokuapp.com/”中。
其他回答
我用Weinre,阿帕奇科多瓦的一部分。
使用Weinre,我可以在桌面浏览器中获得谷歌Chrome的调试控制台,并可以将Android连接到该调试控制台,并调试HTML和CSS。我可以在控制台中执行Javascript命令,这些命令会影响Android浏览器中的Web页面。来自Android的日志消息出现在桌面调试控制台中。
然而,我认为这是不可能查看或逐步通过实际的Javascript代码。所以我把Weinre和日志信息结合起来。
(我对JConsole了解不多,但在我看来,用JConsole检查HTML和CSS是不可能的,只有Javascript命令和日志记录(?))
Android工作室提供所有你需要看到console.log和其他。在logcat中,只要过滤到“/Web Console”,你就会看到你的js日志…
如果你遇到任何问题,你可以添加这个插件: https://github.com/apache/cordova-plugin-console
更新:远程调试
以前,控制台日志记录是在Android上调试JavaScript的最佳选择。这些天有了Chrome for Android远程调试,我们可以利用Chrome for Android桌面开发工具的所有优点。查看https://developers.google.com/chrome-developer-tools/docs/remote-debugging获取更多信息。
更新:JavaScript控制台
您还可以在URL栏中导航到about:debug,以激活调试菜单和最新Android设备的JavaScript错误控制台。您应该在浏览器顶部看到SHOW JAVASCRIPT CONSOLE。
目前在Android 4.0.3 (Ice Cream Sandwich)中,logcat输出到浏览器通道。所以你可以使用adb logcat browser:* *:S进行过滤。
原来的答案
您可以使用内置的控制台JavaScript对象来打印可以使用adb logcat检查的日志消息。
console.error('1');
console.info('2');
console.log('3');
console.warn('4')
产生如下输出:
D/WebCore ( 165): Console: 1 line: 0 source: http://...
D/WebCore ( 165): Console: 2 line: 0 source: http://...
D/WebCore ( 165): Console: 3 line: 0 source: http://...
D/WebCore ( 165): Console: 4 line: 0 source: http://...
确定WebKit的版本
如果你在位置栏中输入javascript:alert(navigator.userAgent),你会看到WebKit的版本。
铬: Mozilla / 5.0(窗口;U;Windows NT 5.1;en-US) AppleWebKit/532.2 (KHTML,如Gecko) Chrome/4.0.221.6 Safari/532.2
在Android模拟器上 Mozilla / 5.0 (Linux;U;Android 1.6;en - us;AppleWebKit/528.5+ (KHTML,如Gecko) Version/3.1.2 Mobile Safari/525.20.1 . sdk Build/DRC76)
N.B.
不属于Safari版本的WebKit版本号后面有一个+号,它们的版本号通常高于最新发布的WebKit版本号。例如,528+是一个非官方的WebKit版本,比525更新。x版本,作为Safari 3.1.2的一部分发布。
如果您正在寻找非远程选项:
在早期和非根的Jellybean版本中,如果android.permission. logcat viewer可以使用。READL_LOGS通过adb授权一次。
在firefox上,有一个控制台插件可以读取并显示所有应用程序日志,还有firebug lite。
你可以试试https://github.com/fullpipe/screen-log。试着让它简洁明了。