在Kindle Fire上运行我的网站时,我遇到了一些不同的javascript行为,而不是Chrome。为了调试这个,我需要访问Chrome Developer Tool或Firebug之类的东西。有什么建议吗?
答案 0 :(得分:6)
在同一条船上...希望adb logcat会有所帮助,但javascript控制台消息似乎没有出现在那里。也许需要在设备上设置一些东西来将控制台日志定向到logcat?
编辑:找到了一个不错的解决方案:http://jsconsole.com - 允许您设置远程调试/日志记录控制台。非常简单(仅限控制台日志记录,因此您需要将大量数据转储到日志中)......但它运行良好。至少帮助我找到了问题的根源!
答案 1 :(得分:0)
我采用了不同的方法并创建了一个包装器本机应用程序,它会弹出一个JavaScript对话框。
我的包装代码相当大,所以我拿了一个相关部分的片段。它实际上工作,并将显示任何JavaScript错误。
// registers the debugger to catch errors
WebView engine = (WebView) findViewById(R.id.web_engine);
engine.setWebChromeClient(new DebugClient(this));
// the class that manages the errors
private class DebugClient extends WebChromeClient {
Activity activity;
public DebugClient(Activity activity) {
this.activity = activity;
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
if (consoleMessage.messageLevel() == MessageLevel.ERROR
|| consoleMessage.messageLevel() == MessageLevel.WARNING) {
String title="Javascript error on line "
+ String.valueOf(consoleMessage.lineNumber())
+ " of " + consoleMessage.sourceId();
AlertBox alertBox=new AlertBox(activity, (ActionListener)null, title, consoleMessage.message(), "OK");
alertBox.show();
alertBoxes.add(alertBox);
}
return true;
}
}
要编译它,您需要在计算机上安装Android SDK,并且可能需要在ADT上安装Java IDE(Eclipse?)。然后你就是这样做:创建新项目,将一个WebView组件添加到layout / main.xml中,然后粘贴代码。编译并安装在您的Kindle Fire上。