Men-debug aplikasi web

Anda dapat men-debug JavaScript menggunakan console JavaScript API dan melihat pesan output di Logcat. Jika Anda sudah terbiasa men-debug halaman web dengan Firebug atau Web Inspector, Anda mungkin sudah terbiasa menggunakan console (seperti console.log()). Framework WebKit Android mendukung sebagian besar API yang sama, sehingga Anda dapat menerima log dari halaman web saat men-debug di WebView. Bagian ini menjelaskan cara menggunakan API konsol untuk proses debug.

Menggunakan API konsol di WebView

API konsol juga didukung saat menjalankan proses debug di WebView. Anda harus memberikan WebChromeClient yang menerapkan metode onConsoleMessage() agar pesan konsol dapat muncul di Logcat. Kemudian, terapkan WebChromeClient ke WebView dengan setWebChromeClient(). Untuk mengetahui informasi selengkapnya, lihat dokumentasi WebView.

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 sedang dikirim. Anda dapat membuat kueri tingkat pesan dengan messageLevel() untuk menentukan tingkat keparahan pesan, lalu menggunakan metode Log yang sesuai atau mengambil tindakan lain yang sesuai.

Baik Anda menggunakan onConsoleMessage(String, int, String) atau onConsoleMessage(ConsoleMessage), saat Anda menjalankan metode konsol di halaman web, Android memanggil metode onConsoleMessage() yang sesuai sehingga Anda dapat melaporkan error. Misalnya, dengan kode contoh, pesan Logcat dicetak seperti yang terlihat berikut:

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

Berikut adalah referensi tambahan terkait proses debug:

Menguji fitur web eksperimental

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

Untuk melakukannya, ikuti langkah-langkah berikut:

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

  2. Alihkan WebView channel di perangkat pengujian Anda ke channel pra-rilis yang diinstal.

  3. Klik peluncur WebView DevTools.

    Ikon peluncur WebView DevTools.
    Gambar 1. Ikon WebView DevTools untuk aplikasi yang diinstal di perangkat.
  4. Dari DevTools, klik item Flags dan telusuri fitur eksperimental yang ingin Anda aktifkan atau nonaktifkan. Perubahan ini berlaku untuk semua instance WebView di perangkat.

  5. Hentikan dan mulai ulang aplikasi Anda untuk mulai menguji fitur baru.

Untuk mengetahui informasi selengkapnya tentang mengganti status flag, lihat dokumentasi DevTools WebView.