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 thông báo đầu ra trong Logcat. Nếu quen với việc gỡ lỗi trang web bằng Firebug hoặc Web Inspector, thì có thể bạn cũng 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 API tương tự, vì vậy, bạn có thể nhận nhật ký từ trang web của mình khi gỡ lỗi trong WebView. Phần này mô tả cách sử dụng các API của bảng điều khiển để gỡ lỗi.

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

Các API của bảng điều khiển cũng được hỗ trợ khi gỡ lỗi trong WebView. Bạn phải cung cấp một WebChromeClient triển khai phương thức 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 bằng setWebChromeClient(). Để biết thêm thông tin, hãy xem tài liệu về WebView.

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

Cho dù bạn đang sử dụng onConsoleMessage(String, int, String) hay onConsoleMessage(ConsoleMessage), khi bạn thực thi một phương thức trên bảng điều khiển trong trang web của mình, Android sẽ gọi phương thức onConsoleMessage() thích hợp để bạn có thể báo cáo lỗi. Ví dụ: với mã ví dụ, một thông báo Logcat sẽ được in ra có dạng 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 liên quan đến việc gỡ lỗi:

Dùng thử các tính năng thử nghiệm trên web

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 thử nghiệm trong WebView.

Để làm việc này, hãy thực hiện các bước sau:

  1. Cài đặt một trong các WebView kênh phát hành trước (beta, nhà phát triển hoặc canary){:.external}.

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

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

    Biểu tượng trình chạy Công cụ cho nhà phát triển WebView.
    Hình 1. Biểu tượng WebView DevTools 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 mục Cờ rồi tìm kiếm mọi tính năng thử nghiệm mà bạn muốn bật hoặc tắt. Thay đổi này áp dụng cho tất cả các phiên bản WebView trên thiết bị.

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

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