אפשר לנפות באגים ב-JavaScript באמצעות console
JavaScript APIs ולצפות בהודעות הפלט ב-Logcat. אם אתם מכירים את ניפוי הבאגים בדפי אינטרנט באמצעות Firebug או Web Inspector, סביר להניח שאתם יודעים להשתמש ב-console
(למשל, console.log()
). מסגרת WebKit של Android תומכת ברוב ממשקי ה-API האלה, כך שתוכלו לקבל יומנים מדף האינטרנט שלכם כשאתם מנפים באגים ב-WebView
. בקטע הזה מוסבר איך להשתמש ב-APIs של המסוף לצורך ניפוי באגים.
שימוש בממשקי API של המסוף ב-WebView
ממשקי ה-API של המסוף נתמכים גם כשמבצעים ניפוי באגים ב-WebView
. כדי שהודעות מהמסוף יופיעו ב-Logcat, צריך לספק WebChromeClient
שמטמיע את השיטה onConsoleMessage()
.
לאחר מכן, מחילים את WebChromeClient
על WebView
באמצעות setWebChromeClient()
. מידע נוסף זמין במאמרי העזרה בנושא WebView
.
בדוגמה הבאה אפשר לראות איך משתמשים בממשקי API של המסוף ב-WebView
:
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
}
}
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
ריכזנו כאן משאבים נוספים שקשורים לניפוי באגים:
בדיקת תכונות ניסיוניות באינטרנט
בדומה לדף chrome://flags
ב-Google Chrome, אפשר גם לבדוק תכונות ניסיוניות באינטרנט ב-WebView
.
כדי לעשות את זה, פועלים לפי השלבים הבאים:
מתקינים אחד מערוצי טרום-ההפצה של
WebView
(בטא, Dev או Canary){:.external}.מעבירים את ערוץ
WebView
במכשיר הבדיקה לערוץ טרום-ההפצה שהותקן.לוחצים על סמל ההפעלה של WebView DevTools (כלי פיתוח של WebView).
איור 1. סמל של כלי הפיתוח של WebView לאפליקציה שמותקנת במכשיר. בכלי הפיתוח, לוחצים על הפריט Flags ומחפשים תכונות ניסיוניות שרוצים להפעיל או להשבית. השינוי חל על כל המופעים של
WebView
במכשיר.כדי להתחיל לבדוק את התכונות החדשות, צריך לעצור את האפליקציה ולהפעיל אותה מחדש.
מידע נוסף על החלפת מצב של דגלים זמין במסמכי התיעוד של כלי הפיתוח של WebView
.