javascript - 如何在 Kindle Fire 上调试 Silk 浏览器?
我在 Kindle Fire 上运行我的网站时遇到了一些不同的 JavaScript 行为,而在 Chrome 上则没有。为了调试这个问题,我需要类似于 Chrome 开发者工具或 Firebug 的访问权限。有什么建议吗?
答案#1
我也是同样的情况……本来希望 adb logcat 能帮忙,但 JavaScript 控制台的消息似乎并没有出现在那里。也许需要在设备上设置某些东西来将控制台日志定向到 logcat?
编辑:找到一个不错的解决方案:http://jsconsole.com -- 允许你设置远程调试/日志控制台。非常简单(只支持控制台日志,因此你需要将大量信息转储到日志中)……但它效果很好。至少帮助我追踪到了问题的来源!
操作方法: http://jsconsole.com/remote-debugging.html
答案#2
我采取了不同的方法,创建了一个本地包装应用程序,为 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,可能还需要一个 Java IDE(Eclipse?)和 ADT。然后您只需:创建新项目,在您的 layout/main.xml 中添加一个 WebView 组件,并粘贴代码。编译并安装到您的 Kindle Fire 上。
