Gỡ lỗi ứng dụng web

Bạn có thể gỡ lỗi JavaScript bằng cách sử dụng API JavaScript console và xem các thông điệp đầu ra trong Logcat. Nếu bạn đã quen với việc gỡ lỗi trang web bằng Jacob hoặc Trình kiểm tra web, thì có lẽ bạn đã quen với việc sử dụng console (chẳng hạn như console.log()). Khung WebKit của Android hỗ trợ hầu hết các để bạn có thể nhận nhật ký từ trang web của mình khi gỡ lỗi trong WebView. Chủ đề này mô tả cách sử dụng các API bảng điều khiển để gỡ lỗi.

Sử dụng API bảng điều khiển trong WebView

API bảng điều khiển cũng được hỗ trợ khi gỡ lỗi trong WebView. Bạn phải hãy cung cấp WebChromeClient triển khai thời gian onConsoleMessage() để thông báo trên bảng điều khiển xuất hiện trong Logcat. Sau đó, hãy áp dụng WebChromeClient cho WebView của bạn bằng setWebChromeClient(). Để biết thêm thông tin, hãy xem Webview tài liệu.

Ví dụ sau đây cho thấy cách sử dụng API bảng điều khiển trong 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 cũng bao gồm MessageLevel đối tượng để cho biết loại thông báo trên bảng điều khiển được gửi. Bạn có thể truy vấn cấp tin nhắn với messageLevel() đến xác định mức độ nghiêm trọng của thông báo, sau đó sử dụng Log hoặc thực hiện các biện pháp thích hợp khác.

Cho dù bạn có đang sử dụng onConsoleMessage(String, int, String) hoặc onConsoleMessage(ConsoleMessage), khi bạn thực thi phương thức bảng điều khiển trong trang web của mình, Android sẽ gọi phương thức onConsoleMessage() phù hợp để bạn có thể báo cáo lỗi. Ví dụ: với mã ví dụ ở trên, Thông báo Logcat được in như sau:

Hello World -- From line 82 of http://www.example.com/hello.html

Sau đây là các tài nguyên bổ sung có liên quan đến việc gỡ lỗi:

Kiểm thử các tính năng của web thử nghiệm

Tương tự như trang chrome://flags của Google Chrome, bạn cũng có thể thử nghiệm các tính năng web trong WebView.

Để cập nhật, hãy làm theo các bước sau:

  1. Cài đặt một trong các bản phát hành trước của WebView các kênh (thử nghiệm, phát triển hoặc canary){: .external}.

  2. Chuyển đổi WebView kênh trên thiết bị thử nghiệm lên kênh phát hành trước đã cài đặt.

  3. Nhấp vào trình chạy WebViewCông cụ cho nhà phát triển:


    Hình 1. Biểu tượng Công cụ cho nhà phát triển WebView cho ứng dụng được cài đặt trên thiết bị.

  4. Trong Công cụ cho nhà phát triển, hãy nhấp vào Cờ rồi tìm kiếm mọi tính năng thử nghiệm bạn muốn bật hoặc tắt. Thay đổi này áp dụng cho tất cả WebView thực thể trên thiết bị.

  5. Dừng và khởi động lại ứng dụng của bạn để bắt đầu thử nghiệm các tính năng mới.

Để biết thêm thông tin về cách chuyển đổi cờ, hãy xem Công cụ cho nhà phát triển WebView tài liệu.