Men-debug aplikasi web

Anda dapat men-debug JavaScript menggunakan console JavaScript API dan tampilan pesan output di Logcat. Jika Anda terbiasa melakukan {i>debugging<i} laman web dengan Firebug atau Web Inspector, maka Anda mungkin terbiasa menggunakan console (seperti console.log()). Framework WebKit Android mendukung hampir semua API, sehingga Anda dapat menerima log dari halaman web saat melakukan debug di WebView Topik ini menjelaskan cara menggunakan API konsol untuk proses debug.

Menggunakan API konsol di WebView

API konsol juga didukung saat melakukan proses debug di WebView. Anda harus sediakan WebChromeClient yang menerapkan tindakan onConsoleMessage() agar pesan konsol muncul di Logcat. Kemudian, terapkan WebChromeClient ke WebView Anda dengan setWebChromeClient() Untuk informasi selengkapnya, lihat Webview. dokumentasi tambahan.

Contoh berikut menunjukkan cara menggunakan API konsol di WebView:

Kotlin

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
    }
}

Java

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 juga menyertakan Objek MessageLevel untuk menunjukkan jenis pesan konsol yang dikirimkan. Anda dapat melakukan kueri tingkat pesan dengan messageLevel() ke menentukan tingkat keseriusan pesan, lalu menggunakan metode Log atau lakukan tindakan lain yang sesuai.

Baik Anda menggunakan onConsoleMessage(String, int, String) atau onConsoleMessage(ConsoleMessage), saat Anda menjalankan metode konsol di laman web, Android akan memanggil metode onConsoleMessage() yang sesuai sehingga Anda dapat melaporkan error tersebut. Misalnya, dengan kode contoh di atas, Pesan Logcat akan terlihat seperti ini:

Hello World -- From line 82 of http://www.example.com/hello.html

Berikut adalah referensi tambahan terkait proses debug:

Uji fitur web eksperimental

Mirip dengan halaman chrome://flags Google Chrome, Anda juga dapat menguji fitur eksperimental fitur web di WebView.

Untuk melakukannya, lakukan langkah-langkah berikut:

  1. Instal salah satu WebView pra-rilis channel (beta, dev, atau canary){: .external}.

  2. Mengganti WebView saluran di perangkat pengujian ke saluran pra-rilis yang diinstal.

  3. Klik peluncur WebView DevTools:


    Gambar 1. Ikon WebView DevTools untuk aplikasi yang diinstal pada perangkat seluler.

  4. Dari DevTools, klik Flag dan telusuri fitur eksperimental apa pun yang ingin Anda aktifkan atau nonaktifkan. Perubahan ini berlaku untuk semua instance WebView di perangkat.

  5. Hentikan dan mulai ulang aplikasi Anda untuk memulai pengujian dengan fitur baru.

Untuk informasi selengkapnya tentang cara mengalihkan tanda, lihat WebView DevTools dokumentasi.