डीबग वेब ऐप्लिकेशन

console JavaScript API का इस्तेमाल करके, अपने JavaScript को डीबग किया जा सकता है और Logcat में आउटपुट मैसेज देखे जा सकते हैं. अगर आपको Firebug या वेब इंस्पेक्टर की मदद से वेब पेजों को डीबग करने का पता है, तो हो सकता है कि आप console (जैसे, console.log()) का इस्तेमाल करना जानते हों. Android का वेबवर्क फ़्रेमवर्क, ज़्यादातर एपीआई के साथ काम करता है. इसलिए, WebView में डीबग करते समय, आपको अपने वेब पेज से लॉग मिल सकते हैं. इस सेक्शन में, डीबग करने के लिए Console API का इस्तेमाल करने का तरीका बताया गया है.

WebView में कंसोल एपीआई का इस्तेमाल करना

WebView में डीबग करते समय, कंसोल एपीआई भी काम करते हैं. आपको ऐसा WebChromeClient देना होगा जो Logcat में कंसोल मैसेज दिखाने के लिए, onConsoleMessage() तरीका लागू करता हो. इसके बाद, setWebChromeClient() का इस्तेमाल करके, WebView पर WebChromeClient लागू करें. ज़्यादा जानकारी के लिए, Webview का दस्तावेज़ देखें.

यहां दिए गए उदाहरण में, 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 में एक MessageLevel ऑब्जेक्ट भी शामिल होता है. इससे, डिलीवर किए जा रहे कंसोल मैसेज के टाइप का पता चलता है. मैसेज के लेवल का पता लगाने के लिए, messageLevel() का इस्तेमाल करके मैसेज के लेवल के बारे में क्वेरी की जा सकती है. इसके बाद, Log के हिसाब से सही तरीका अपनाएं या अन्य सही कार्रवाइयां करें.

अपने वेब पेज में कोई कंसोल मेथड इस्तेमाल करने पर, Android सही onConsoleMessage() मेथड को कॉल करता है, ताकि आप गड़बड़ी की शिकायत कर सकें. भले ही, आपने onConsoleMessage(String, int, String) या onConsoleMessage(ConsoleMessage) का इस्तेमाल किया हो. उदाहरण के लिए, ऊपर दिए गए उदाहरण के कोड से, Logcat का एक मैसेज प्रिंट होता है, जो कुछ ऐसा दिखता है:

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

डीबग करने से जुड़े अन्य संसाधन यहां दिए गए हैं:

वेब के लिए एक्सपेरिमेंट के तौर पर उपलब्ध सुविधाओं की जांच करना

Google Chrome के chrome://flags पेज की तरह ही, WebView में भी एक्सपेरिमेंट के तौर पर उपलब्ध वेब की सुविधाओं को आज़माया जा सकता है.

ऐसा करने के लिए, यह तरीका अपनाएं:

  1. WebView रिलीज़ से पहले उपलब्ध होने वाले चैनलों में से कोई एक चैनल (बीटा, डेव या कैनरी) इंस्टॉल करें{: .external}.

  2. अपने टेस्ट डिवाइस पर, WebView चैनल को रिलीज़ से पहले इंस्टॉल किए गए चैनल पर स्विच करें.

  3. WebView DevTools लॉन्चर पर क्लिक करें:


    पहली इमेज. किसी डिवाइस पर इंस्टॉल किए गए ऐप्लिकेशन के लिए, वेबव्यू डेवलपर टूल का आइकॉन.

  4. DevTools में, फ़्लैग पर क्लिक करें. इसके बाद, ऐसी किसी भी एक्सपेरिमेंटल सुविधा को खोजें जिसे आपको चालू या बंद करना है. यह बदलाव, डिवाइस पर मौजूद WebView के सभी इंस्टेंस पर लागू होता है.

  5. नई सुविधाओं के साथ टेस्टिंग शुरू करने के लिए, अपने ऐप्लिकेशन को बंद करके फिर से चालू करें.

फ़्लैग को टॉगल करने के बारे में ज़्यादा जानकारी के लिए, WebView DevTools का दस्तावेज़ देखें.