Web uygulamalarında hata ayıklama

console JavaScript API'lerini kullanarak JavaScript'inizdeki hataları ayıklayabilir ve çıkış mesajlarını Logcat'te görüntüleyebilirsiniz. Firebug veya Web Inspector ile web sayfalarında hata ayıklama hakkında bilgi sahibiyseniz console (console.log() gibi) aracını kullanmaya aşinasınızdır. Android'in WebKit çerçevesi, aynı API'lerin çoğunu destekler. Böylece WebView'te hata ayıklarken web sayfanızdan günlükler alabilirsiniz. Bu konuda, hata ayıklama için konsol API'lerinin nasıl kullanılacağı açıklanmaktadır.

Web Görünümü'nde konsol API'lerini kullanma

Konsol API'leri, WebView ürününde hata ayıklarken de desteklenir. Konsol mesajlarının Logcat'te görünmesi için onConsoleMessage() yöntemini uygulayan bir WebChromeClient sağlamanız gerekir. Ardından, setWebChromeClient() ile WebChromeClient özelliğini WebView cihazınıza uygulayın. Daha fazla bilgi için Webview belgelerine göz atın.

Aşağıdaki örnekte, WebView ürününde 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, teslim edilen konsol mesajının türünü belirten bir MessageLevel nesnesi de içerir. Mesajın önem derecesini belirlemek için mesaj düzeyini messageLevel() ile sorgulayabilir, ardından uygun Log yöntemini kullanabilir ya da diğer uygun işlemleri yapabilirsiniz.

İster onConsoleMessage(String, int, String) ister onConsoleMessage(ConsoleMessage) kullanın, 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 kodla, aşağıdaki gibi bir Logcat mesajı yazdırılır:

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

Hata ayıklamayla ilgili ek kaynaklar aşağıda verilmiştir:

Deneysel web özelliklerini test edin

Google Chrome'un chrome://flags sayfasına benzer şekilde, deneysel web özelliklerini WebView ürününde de test edebilirsiniz.

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

  1. Yayın öncesi WebView kanallarından (beta, geliştirici veya canary){: .external} birini yükleyin.

  2. Test cihazınızdaki WebView kanalını, yayın öncesi yüklü yüklü kanala değiştirin.

  3. Web Görünümü Geliştirici Araçları başlatıcısını tıklayın:


    Şekil 1. Cihazda yüklü uygulama için Web Görünümü Geliştirici Araçları simgesi.

  4. Geliştirici Araçları'ndan İş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çerli olur.

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

İşaretleri açma/kapatma hakkında daha fazla bilgi için WebView Geliştirici Araçları belgelerini inceleyin.