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

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

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

ממשקי ה-API של המסוף נתמכים גם לניפוי באגים ב-WebView. צריך לספק WebChromeClient מוטמע ה onConsoleMessage() כדי שהודעות המסוף יופיעו ב-Logcat. לאחר מכן מחילים את 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:


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

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

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

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