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

6

当我在Kindle Fire上运行我的网站时,与Chrome上的运行有一些不同的javascript行为。为了调试这个问题,我需要访问类似于Chrome开发者工具或Firebug的东西。有什么建议吗?


就我个人而言,现在我需要这样做时会使用Weinre。jsconsole很好用,但是weinre提供了与Chrome开发者工具栏相同的调试工具。它的设置有点复杂,但是非常值得:http://people.apache.org/~pmuellr/weinre/docs/latest/ - Mike McKay
2个回答

6
在这里跟您一样困扰...希望adb logcat能够有所帮助,但是javascript控制台消息似乎并不会出现在那里。也许需要在设备上设置某些内容以将控制台日志定向到logcat?编辑:找到了一个不错的解决方案:http://jsconsole.com - 允许您设置远程调试/记录控制台。相当简单(仅限控制台记录,因此您需要将大量内容转储到日志中)...但很有效。至少帮助我追踪了我的问题来源!如何操作:http://jsconsole.com/remote-debugging.html

jsconsole.com这个网站一直在哪里啊?太有用了,谢谢! - Meekohi

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?)。 然后,您只需创建一个新项目,在您的layout/main.xml中添加一个WebView组件,并粘贴代码。 编译并安装到您的Kindle Fire上。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接