אפשר לנפות באגים ב-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
.
כדי לעשות זאת, מבצעים את השלבים הבאים:
מתקינים את אחד מ
WebView
הערוצים של הגרסאות המקדימות (בטא, Dev או Canary){: .external}.מחליפים את
WebView
הערוץ במכשיר הבדיקה לערוץ טרום-ההפצה שהותקן.לוחצים על מרכז האפליקציות של WebView DevTools:
בכלי הפיתוח, לוחצים על Flags ומחפשים את התכונות הניסיוניות שרוצים להפעיל או להשבית. השינוי יחול על כל המופעים של
WebView
במכשיר.כדי להתחיל לבדוק את התכונות החדשות, צריך להפסיק את האפליקציה ולהפעיל אותה מחדש.
מידע נוסף על החלפת דגלים זמין במסמכי העזרה של WebView
DevTools.