Web uygulamalarında hata ayıklama

console JavaScript API'lerini kullanarak JavaScript'inizde hata ayıklama yapabilir ve çıkış mesajlarını Logcat'te görüntüleyebilirsiniz. Firebug veya Web Inspector ile web sayfalarında hata ayıklama hakkında bilginiz varsa muhtemelen console (console.log() gibi) kullanmayı da biliyorsunuzdur. Android'in WebKit çerçevesi, aynı API'lerin çoğunu destekler. Bu sayede, WebView'da hata ayıklama yaparken web sayfanızdan günlük alabilirsiniz. Bu bölümde, hata ayıklama için konsol API'lerinin nasıl kullanılacağı açıklanmaktadır.

WebView'de konsol API'lerini kullanma

Konsol API'leri, WebView'te hata ayıklama sırasında da desteklenir. Konsol mesajlarının Logcat'te görünmesi için onConsoleMessage() yöntemini uygulayan bir WebChromeClient sağlamanız gerekir. Ardından WebChromeClient'yi setWebChromeClient() ile WebView'nize uygulayın. Daha fazla bilgi için Webview dokümanlarına bakın.

Aşağıdaki örnekte, WebView'te konsol API'lerinin nasıl kullanılacağı gösterilmektedir:

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, gönderilen konsol mesajının türünü belirten bir MessageLevel nesnesi de içerir. İletinin önemini belirlemek için messageLevel() ile ileti düzeyini sorgulayabilir, ardından uygun Log yöntemini kullanabilir veya uygun diğer işlemleri yapabilirsiniz.

onConsoleMessage(String, int, String) veya onConsoleMessage(ConsoleMessage) kullanıyor olsanız da web sayfanızda bir konsol yöntemi yürüttüğünüzde Android, hatayı bildirebilmeniz için uygun onConsoleMessage() yöntemini çağırır. Örneğin, yukarıdaki örnek kodda şuna benzer bir Logcat mesajı yazdırılır:

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

Aşağıda, hata ayıklamayla ilgili ek kaynaklar verilmiştir:

Deneysel web özelliklerini test etme

Google Chrome'un chrome://flags sayfasına benzer şekilde, deneysel web özelliklerini WebView'da da test edebilirsiniz.

Bunun için aşağıdaki adımları uygulayın:

  1. WebViewSürüm öncesi kanallardan birini (beta, geliştirici veya kanarya) yükleyin{: .external}.

  2. Test cihazınızdaki WebViewkanalını yüklü yayın öncesi kanala geçirin.

  3. WebView DevTools başlatıcısını tıklayın:


    Şekil 1. Bir cihaza yüklenen uygulamanın WebView DevTools simgesi.

  4. Geliştirici Araçları'nda İşaretler'i tıklayın ve etkinleştirmek veya devre dışı bırakmak istediğiniz deneysel özellikleri arayın. Değişiklik, cihazdaki tüm WebView örnekleri için geçerlidir.

  5. Yeni özelliklerle test yapmaya başlamak için uygulamanızı durdurup yeniden başlatın.

İşaretleri etkinleştirme/devre dışı bırakma hakkında daha fazla bilgi için WebView DevTools belgelerine bakın.