6

在 Kindle Fire 上运行我的网站时,我遇到了一些不同的 javascript 行为,而不是通过 Chrome。为了调试它,我需要访问 Chrome 开发者工具或 Firebug 之类的东西。有什么建议么?

4

2 回答 2

6

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

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

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

于 2012-01-11T19:23:51.470 回答
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 上编译并安装。

于 2012-02-17T20:25:35.267 回答