我在做一个和拉斐尔有关的项目。事实证明,它在Android上不起作用。iPhone上是这样的。

我该怎么调试Android浏览器上的东西呢?它是WebKit,所以如果我知道版本,在完整版本的WebKit上调试它会产生相同的结果吗?


当前回答

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的一部分发布。

试试“vconsole”,也许能帮到你

“Kiwi浏览器”拥有与桌面chrome浏览器相同的工具,并且可以在android上进行本地调试-不需要usb。 加载html文件,并在菜单中选择“开发人员工具”。如果需要重新启动调试,请重新加载html。

看一看jsHybugger。它将允许你远程调试你的js代码:

Android混合应用(webview, phonegap, worklight) Web页面运行在默认的android浏览器(不是Chrome,它支持ADB扩展没有这个工具)

这是如何工作的(在项目网站上有更多的细节和替代方案,这是我发现的最好的方法)。

Install the jsHybugger APK on your device Enable USB debugging on you device. Plug the Android device into your desktop computer via USB Run the app on the Android device ('jsHybugger') Enter the target URL and page in the app. Press Start Service and finally Open Browser You'll be presented with a list of installed browsers, choose one. The browser launches. Back on your desktop computer open Chrome to chrome://inspect/ An inspectors window will appear with the chrome debugging tools linked to the page on the Android device. debug away!

同样,在Android上使用Chrome使用ADB扩展而不使用jsHybugger。我想这个问题的公认答案已经描述过了。

Raphael在3.0之前的Android浏览器上不支持,这就是你的问题所在。它们不支持SVG图形。不过它确实支持canvas。如果你不需要动画,你可以用canvas渲染图形:

http://code.google.com/p/canvg/

这就是我们如何在默认Android浏览器中呈现SVG图标的方法。