คุณสามารถแก้ไขข้อบกพร่องของ JavaScript ได้โดยใช้ consoleJavaScript API และดู
ข้อความเอาต์พุตใน Logcat หากคุ้นเคยกับการแก้ไขข้อบกพร่องของหน้าเว็บด้วย
Firebug หรือ Web Inspector คุณอาจคุ้นเคยกับการใช้ console
(เช่น console.log()) เฟรมเวิร์ก WebKit ของ Android รองรับ API ส่วนใหญ่ที่เหมือนกัน ดังนั้นคุณจึงรับบันทึกจากหน้าเว็บได้เมื่อแก้ไขข้อบกพร่องใน WebView ส่วนนี้จะอธิบายวิธีใช้ API ของคอนโซลเพื่อ
แก้ไขข้อบกพร่อง
ใช้ Console 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
แหล่งข้อมูลเพิ่มเติมที่เกี่ยวข้องกับการแก้ไขข้อบกพร่องมีดังนี้
ทดสอบฟีเจอร์ทดลองของเว็บ
คุณยังทดสอบฟีเจอร์ทดลองของเว็บได้ใน WebView เช่นเดียวกับในหน้า chrome://flags ของ Google Chrome
โดยทำตามขั้นตอนต่อไปนี้
ติดตั้ง
WebViewเวอร์ชันทดลองใช้ก่อนเปิดตัว (เบต้า, Dev หรือ Canary) อย่างใดอย่างหนึ่ง{:.external}เปลี่ยน
WebViewเวอร์ชันในอุปกรณ์ทดสอบเป็นเวอร์ชันทดลองที่ติดตั้งไว้คลิกตัวเรียกใช้ WebView DevTools
รูปที่ 1 ไอคอน WebView DevTools สำหรับแอปที่ติดตั้งในอุปกรณ์ จากเครื่องมือสำหรับนักพัฒนาเว็บ ให้คลิกรายการฟีเจอร์ที่ทดลอง แล้วค้นหาฟีเจอร์ทดลองที่คุณต้องการเปิดใช้หรือปิดใช้ การเปลี่ยนแปลงจะมีผลกับอินสแตนซ์ทั้งหมด
WebViewในอุปกรณ์หยุดและรีสตาร์ทแอปเพื่อเริ่มทดสอบด้วยฟีเจอร์ใหม่
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปิด/ปิดฟีเจอร์ทดลองได้ที่WebViewเอกสารประกอบของเครื่องมือสำหรับนักพัฒนาเว็บ