Вы можете отладить свой JavaScript с помощью console
API-интерфейсов JavaScript и просмотреть выходные сообщения в Logcat. Если вы знакомы с отладкой веб-страниц с помощью Firebug или Web Inspector, то вы, вероятно, знакомы с использованием console
(например, console.log()
). Платформа Android WebKit поддерживает большинство одних и тех же API, поэтому вы можете получать журналы со своей веб-страницы при отладке в WebView
. В этом разделе описывается, как использовать консольные API для отладки.
Используйте консольные API в WebView
Консольные API также поддерживаются при отладке в WebView
. Вы должны предоставить WebChromeClient
, который реализует метод onConsoleMessage()
, чтобы сообщения консоли появлялись в Logcat. Затем примените 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
(бета-версия, версия для разработчиков или канарейка) {: .external}.Переключите канал
WebView
на тестовом устройстве на установленный канал предварительной версии.Нажмите кнопку запуска WebView DevTools :
Рис. 1. Значок WebView DevTools для приложения, установленного на устройстве.В DevTools нажмите «Флаги» и найдите любые экспериментальные функции, которые вы хотите включить или отключить. Изменение применяется ко всем экземплярам
WebView
на устройстве.Остановите и перезапустите приложение, чтобы начать тестирование новых функций.
Дополнительные сведения о переключении флагов см. в документации WebView
DevTools .