แก้ไขข้อบกพร่องของเว็บแอป

คุณสามารถแก้ไขข้อบกพร่องของ 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

โดยทำตามขั้นตอนต่อไปนี้

  1. ติดตั้งWebViewเวอร์ชันทดลองใช้ก่อนเปิดตัว (เบต้า, Dev หรือ Canary) อย่างใดอย่างหนึ่ง{:.external}

  2. เปลี่ยนWebViewเวอร์ชันในอุปกรณ์ทดสอบเป็นเวอร์ชันทดลองที่ติดตั้งไว้

  3. คลิกตัวเรียกใช้ WebView DevTools

    ไอคอน Launcher ของเครื่องมือสำหรับนักพัฒนาเว็บของ WebView
    รูปที่ 1 ไอคอน WebView DevTools สำหรับแอปที่ติดตั้งในอุปกรณ์
  4. จากเครื่องมือสำหรับนักพัฒนาเว็บ ให้คลิกรายการฟีเจอร์ที่ทดลอง แล้วค้นหาฟีเจอร์ทดลองที่คุณต้องการเปิดใช้หรือปิดใช้ การเปลี่ยนแปลงจะมีผลกับอินสแตนซ์ทั้งหมด WebViewในอุปกรณ์

  5. หยุดและรีสตาร์ทแอปเพื่อเริ่มทดสอบด้วยฟีเจอร์ใหม่

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปิด/ปิดฟีเจอร์ทดลองได้ที่WebViewเอกสารประกอบของเครื่องมือสำหรับนักพัฒนาเว็บ