如何在Kindle Fire上调试丝网浏览器?

时间:2012-01-04 15:03:17

标签: javascript kindle-fire

在Kindle Fire上运行我的网站时,我遇到了一些不同的javascript行为,而不是Chrome。为了调试这个,我需要访问Chrome Developer Tool或Firebug之类的东西。有什么建议吗?

2 个答案:

答案 0 :(得分:6)

在同一条船上...希望adb logcat会有所帮助,但javascript控制台消息似乎没有出现在那里。也许需要在设备上设置一些东西来将控制台日志定向到logcat?

编辑:找到了一个不错的解决方案:http://jsconsole.com - 允许您设置远程调试/日志记录控制台。非常简单(仅限控制台日志记录,因此您需要将大量数据转储到日志中)......但它运行良好。至少帮助我找到了问题的根源!

操作方法:http://jsconsole.com/remote-debugging.html

答案 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上。