ניפוי באגים באפליקציות אינטרנט

אפשר לנפות באגים ב-JavaScript באמצעות ממשקי ה-API של JavaScript‏ console ולראות את הודעות הפלט ב-Logcat. אם אתם יודעים לנפות באגים בדפי אינטרנט באמצעות Firebug או Web Inspector, סביר להניח שאתם יודעים להשתמש ב-console (כמו console.log()). מסגרת WebKit של Android תומכת ברוב ממשקי ה-API האלה, כך שתוכלו לקבל יומנים מדף האינטרנט בזמן ניפוי הבאגים ב-WebView. בקטע הזה נסביר איך להשתמש בממשקי ה-API של המסוף לניפוי באגים.

שימוש בממשקי API של מסוף ב-WebView

ממשקי ה-API של מסוף Google נתמכים גם בזמן ניפוי באגים ב-WebView. כדי שהודעות מסוף יופיעו ב-Logcat, צריך לספק WebChromeClient שמטמיע את השיטה onConsoleMessage(). לאחר מכן מחילים את WebChromeClient על WebView באמצעות setWebChromeClient(). מידע נוסף זמין במסמכי העזרה של Webview.

בדוגמה הבאה מוסבר איך משתמשים בממשקי API במסוף ב-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 או לבצע פעולות מתאימות אחרות.

בין שאתם משתמשים ב-onConsoleMessage(String, int, String) ובין שאתם משתמשים ב-onConsoleMessage(ConsoleMessage), כשאתם מריצים שיטה במסוף בדף האינטרנט, Android קוראת לשיטה המתאימה onConsoleMessage() כדי שתוכלו לדווח על השגיאה. לדוגמה, עם הקוד לדוגמה שלמעלה, תוצג הודעת Logcat שנראית כך:

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

ריכזנו כאן מקורות מידע נוספים שקשורים לניפוי באגים:

בדיקת תכונות ניסיוניות לאינטרנט

בדומה לדף chrome://flags ב-Google Chrome, אפשר לבדוק גם תכונות אינטרנט ניסיוניות ב-WebView.

כדי לעשות זאת, מבצעים את השלבים הבאים:

  1. מתקינים את אחד מWebView הערוצים של הגרסאות המקדימות (בטא, Dev או Canary){: .external}.

  2. מחליפים את WebView הערוץ במכשיר הבדיקה לערוץ טרום-ההפצה שהותקן.

  3. לוחצים על מרכז האפליקציות של WebView DevTools:


    איור 1. הסמל של WebView DevTools לאפליקציה שמותקנת במכשיר.

  4. בכלי הפיתוח, לוחצים על Flags ומחפשים את התכונות הניסיוניות שרוצים להפעיל או להשבית. השינוי יחול על כל המופעים של WebView במכשיר.

  5. כדי להתחיל לבדוק את התכונות החדשות, צריך להפסיק את האפליקציה ולהפעיל אותה מחדש.

מידע נוסף על החלפת דגלים זמין במסמכי העזרה של WebView DevTools.