Web uygulamalarında hata ayıklama

JavaScript'inizi console JavaScript API'lerini kullanarak ayıklayabilir ve çıkış mesajlarını Logcat'te görüntüleyebilirsiniz. Web sayfalarında Firebug veya Web Inspector ile hata ayıklama konusunda deneyimliyseniz console (ör. console.log()) kullanma konusunda da deneyimli olabilirsiniz. Android'in WebKit çerçevesi, API'lerin çoğunu destekler. Bu nedenle, WebView içinde hata ayıklarken web sayfanızdan günlükler alabilirsiniz. Bu bölümde, hata ayıklama için konsol API'lerinin nasıl kullanılacağı açıklanmaktadır.

WebView'da konsol API'lerini kullanma

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

Aşağıdaki örnekte, WebView'da 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ü belirtmek için MessageLevel nesnesini de içerir. Mesajın önem derecesini belirlemek için messageLevel() ile mesaj düzeyini sorgulayabilir, ardından uygun Log yöntemini kullanabilir veya diğer uygun işlemleri yapabilirsiniz.

onConsoleMessage(String, int, String) veya onConsoleMessage(ConsoleMessage) kullanıyor olmanızdan bağımsız olarak, 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, örnek kodla birlikte 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ıklama ile ilgili ek kaynaklar:

Deneysel web özelliklerini test etme

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

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

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

  2. Test cihazınızda WebView kanalını, yüklü yayın öncesi kanalına geçirin.

  3. WebView Geliştirici Araçları başlatıcısını tıklayın.

    WebView Geliştirici Araçları başlatıcı simgesi.
    1.şekil Cihaza yüklenen uygulama için WebView DevTools simgesi.
  4. Geliştirici Araçları'nda Flags (Denemeler) öğesini 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 etmeye 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 Geliştirici Araçları belgelerine bakın.