การดีบัก WebView จากระยะไกล

แก้ไขข้อบกพร่อง WebView ในแอป Android ที่มาพร้อมเครื่องโดยใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Chrome

ใน Android 4.4 (KitKat) ขึ้นไป ให้ใช้เครื่องมือสำหรับนักพัฒนาเว็บเพื่อแก้ไขข้อบกพร่องของเนื้อหา WebView ในแอปพลิเคชัน Android ที่มาพร้อมเครื่อง

สรุป

  • เปิดใช้การแก้ไขข้อบกพร่อง WebView ในแอป Android ที่มาพร้อมเครื่อง หรือแก้ไขข้อบกพร่อง WebView ใน Chrome DevTools
  • เข้าถึงรายการ WebView ที่เปิดใช้แก้ไขข้อบกพร่องผ่าน chrome://inspect
  • การแก้ไขข้อบกพร่องของ WebView จะเหมือนกับการแก้ไขข้อบกพร่องของหน้าเว็บผ่านการแก้ไขข้อบกพร่องระยะไกล

กำหนดค่า WebView สำหรับการแก้ไขข้อบกพร่อง

คุณต้องเปิดใช้การแก้ไขข้อบกพร่อง WebView จากภายในแอปพลิเคชัน หากต้องการเปิดใช้การแก้ไขข้อบกพร่อง WebView ให้เรียกใช้เมธอดแบบคงที่ setWebContentsDebuggingEnabled ในคลาส WebView

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    WebView.setWebContentsDebuggingEnabled(true);
}

การตั้งค่านี้จะมีผลกับ WebView ทั้งหมดของแอปพลิเคชัน

เคล็ดลับ: การแก้ไขข้อบกพร่อง WebView ไม่ได้รับผลกระทบจากสถานะของ Flag debuggable ในไฟล์ Manifest ของแอปพลิเคชัน หากคุณต้องการเปิดใช้การแก้ไขข้อบกพร่อง WebView เฉพาะเมื่อ debuggable คือ true ให้ทดสอบแฟล็กขณะรันไทม์

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    if (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE))
    { WebView.setWebContentsDebuggingEnabled(true); }
}

เปิด WebView ในเครื่องมือสำหรับนักพัฒนาเว็บ

หน้า chrome://inspect จะแสดงรายการ WebView ที่เปิดใช้การแก้ไขข้อบกพร่องบนอุปกรณ์

หากต้องการเริ่มแก้ไขข้อบกพร่อง ให้คลิกinspectใต้ WebView ที่ต้องการแก้ไขข้อบกพร่อง ใช้เครื่องมือสำหรับนักพัฒนาเว็บ เหมือนที่ใช้กับแท็บเบราว์เซอร์ระยะไกล

การตรวจสอบองค์ประกอบใน WebView

กราฟิกสีเทาที่มี WebView แสดงถึงขนาดและตำแหน่งที่เกี่ยวข้องกับหน้าจอของอุปกรณ์ หาก WebView ของคุณตั้งค่าชื่อไว้ ระบบจะแสดงชื่อดังกล่าวด้วย

การแก้ปัญหา

หากไม่เห็น WebView ของคุณในหน้า chrome://inspect

  • ตรวจสอบว่าการแก้ไขข้อบกพร่อง WebView เปิดใช้อยู่สำหรับแอปของคุณ
  • เปิดแอปที่มี WebView ที่ต้องการแก้ไขข้อบกพร่องในอุปกรณ์ จากนั้นรีเฟรชหน้า chrome://inspect