Как я могу получить журнал консоли webview через adb? - PullRequest
0 голосов
/ 25 марта 2019

Я создаю приложение для Android с Cordova, которое работает внутри веб-просмотра. Я знаю, что могу получить доступ к веб-представлению через chrome://inspect, но он работает только для отладочной сборки. Он не может проверить хром в выпуске APK. Так есть ли способ получить журнал консоли Chrome с помощью команды adb?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Не могу найти это в любом месте на SO, вот что сработало для меня:

adb -d logcat chromium:I *:S

-d, указывающее физическое устройство в моем случае.Если ничего не помогает, просто выведите результаты adb logcat в текстовый файл и выполните поиск «CONSOLE», что даст вам провайдера для вашего фильтра logcat.Кажется, со временем это меняется и зависит от вашей конкретной среды разработки.

0 голосов
/ 25 марта 2019

Для получения журнала консоли через adb см .: Отладка приложения WebView (Ionic) на Android через logcat

Сначала попробуйте описанное выше, так как мне кажется, что вы неправильно прочитали ваш вопрос об отладке WebView с помощью удаленной отладки.

Для простого нативного приложения для Android на Java / Kotlin, обертывающего WebView, в документации совершенно ясно, что все, что нужно сделать, - это включить функцию :

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    WebView.setWebContentsDebuggingEnabled(true);
}

и требуется дополнительный код, чтобы ограничить его отладочной версией:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    if (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE))
    { WebView.setWebContentsDebuggingEnabled(true); }
}

Глядя на то, что в репозитории Cordova Android:

Cordova Android - ... SystemWebViewEngine.java

соответствующий код здесь:

//Determine whether we're in debug or release mode, and turn on Debugging!
ApplicationInfo appInfo = webView.getContext().getApplicationContext().getApplicationInfo();
if ((appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) {
    enableRemoteDebugging();
}

Я также обнаружил, что это открыто ВЫПУСК 500: В версии выпуска все еще включена отладка , что означает, что эмуляторы Android разрешают отладку, даже если APK упакован для выпуска.

Итак, мои предложения по удаленной отладке WebView в выпущенном APK:

  1. Попробуйте использовать эмулятор для отладки с выпуском APK, как это представляется возможным.

  2. Подумайте о разветвлении кода Android Cordova и создайте специальный режим отладки, чтобы на устройстве можно было отлаживать содержимое WebView. Включение такой функции может быть скрыто через пользовательское системное свойство: Как определить и использовать системное свойство в Android? Например, скажем, вы определили флаг с именем com.example.myapp.debugwebview. Вы можете установить свойство с помощью команды, например adb setprop com.example.myapp.debugwebview 1, и при запуске / перезапуске приложение включит отладку WebView. Обратите внимание, что для этого требуется более детальное понимание Android, а также усилия по поддержке форка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...