网站搜索

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