Вы можете отлаживать JavaScript, используя console API JavaScript, и просматривать выходные сообщения в Logcat. Если вы знакомы с отладкой веб-страниц с помощью Firebug или Web Inspector, то, вероятно, знакомы с использованием console (например, console.log() ). Фреймворк Android WebKit поддерживает большинство тех же API, поэтому вы можете получать логи с веб-страницы при отладке в WebView . В этом разделе описывается, как использовать консольные API для отладки.
Используйте консольные API в WebView
Консольные API также поддерживаются при отладке в WebView . Для отображения консольных сообщений в Logcat необходимо предоставить WebChromeClient , реализующий метод onConsoleMessage() . Затем примените WebChromeClient к WebView с помощью setWebChromeClient() . Подробнее см. в документации WebView .
В следующем примере показано, как использовать консольные API в WebView :
Котлин
val myWebView: WebView = findViewById(R.id.webview)
myWebView.webChromeClient = object : WebChromeClient() {
override fun onConsoleMessage(message: ConsoleMessage): Boolean {
Log.d("MyApplication", "${message.message()} -- From line " +
"${message.lineNumber()} of ${message.sourceId()}")
return true
}
}
Ява
WebView myWebView = findViewById(R.id.webview);
myWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
Log.d("MyApplication", consoleMessage.message() + " -- From line " +
consoleMessage.lineNumber() + " of " + consoleMessage.sourceId());
return true;
}
});
ConsoleMessage также включает объект MessageLevel , указывающий тип доставляемого консольного сообщения. Вы можете запросить уровень сообщения с помощью messageLevel() чтобы определить его важность, а затем использовать соответствующий метод Log или выполнить другие необходимые действия.
Независимо от того, используете ли вы onConsoleMessage(String, int, String) или onConsoleMessage(ConsoleMessage) , при выполнении консольного метода на веб-странице Android вызывает соответствующий метод onConsoleMessage() , чтобы вы могли сообщить об ошибке. Например, в этом примере кода выводится сообщение Logcat, которое выглядит следующим образом:
Hello World -- From line 82 of http://www.example.com/hello.html
Ниже приведены дополнительные ресурсы, связанные с отладкой:
Тестирование экспериментальных веб-функций
Подобно странице chrome://flags в Google Chrome, вы также можете тестировать экспериментальные веб-функции в WebView .
Для этого выполните следующие шаги:
Установите одну из предварительных версий
WebView(beta, dev или canary){:.external}.Переключите канал
WebViewна тестовом устройстве на установленный предварительный канал.Нажмите кнопку запуска WebView DevTools .

Рисунок 1. Значок WebView DevTools для приложения, установленного на устройстве. В DevTools выберите пункт «Флаги» и найдите все экспериментальные функции, которые вы хотите включить или отключить. Изменение применяется ко всем экземплярам
WebViewна устройстве.Остановите и перезапустите приложение, чтобы начать тестирование новых функций.
Дополнительную информацию о переключении флагов см. в документации WebView DevTools .