Как отладить шелковый браузер на Kindle Fire?

Я испытываю другое поведение javascript при запуске моего сайта на Kindle Fire, чем через Chrome. Чтобы отладить это, мне нужен доступ к чему-то вроде Chrome Developer Tool или Firebug. Какие-либо предложения?


person Mike McKay    schedule 04.01.2012    source источник
comment
FWIW, теперь я использую Weinre, когда мне нужно это сделать. jsconsole великолепен, но weinre предоставляет тот же инструмент отладки, что и панель инструментов разработчика Chrome. Это немного сложно настроить, но оно того стоит: people.apache.org/~pmuellr /weinre/docs/последние   -  person Mike McKay    schedule 30.01.2013


Ответы (2)


В той же лодке здесь ... надеялся, что adb logcat поможет, но сообщения консоли javascript, похоже, там не появляются. Возможно, нужно что-то настроить на устройстве, чтобы журналы консоли направлялись в logcat?

редактировать: нашел достойное решение: http://jsconsole.com - позволяет настроить удаленную консоль отладки/регистрации . Довольно просто (только консольное ведение журнала, так что вам нужно много записывать в журналы)... но работает хорошо. По крайней мере, помог мне отследить источник моих проблем!

инструкции: http://jsconsole.com/remote-debugging.html

person stpiker    schedule 11.01.2012
comment
:O Где jsconsole.com был всю мою жизнь? Так полезно. Спасибо! - person Meekohi; 28.02.2012

Я выбрал другой подход и создал нативное приложение-оболочку, которое выводит диалоговое окно для 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. Затем вы просто делаете: создаете новый проект, добавляете компонент WebView в ваш layout/main.xml и вставляете код. Скомпилируйте и установите на свой Kindle Fire.

person Ohad Kravchick    schedule 17.02.2012