Bạn có thể gỡ lỗi JavaScript bằng các 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 Trình kiểm tra web, 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 bảng điều khiển để gỡ lỗi.
Sử dụng API bảng điều khiển trong WebView
Các API 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 của 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 cho thấy 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 đối tượng MessageLevel
để cho biết loại thông báo trên bảng điều khiển đang được phân phố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 bảng điều khiển trong trang web, 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ụ ở trên, thông báo Logcat sẽ đượ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 khác liên quan đến việc gỡ lỗi:
Thử nghiệm 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 trong WebView
.
Để thực hiện việc này, hãy làm theo các bước sau:
Cài đặt một trong các kênh phát hành trước của
WebView
(beta, nhà phát triển hoặc canary){: .external}.Chuyển kênh
WebView
trên thiết bị thử nghiệm sang kênh phát hành trước đã cài đặt.Nhấp vào trình chạy WebView DevTools:
Trong DevTools, hãy nhấp vào 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 thực thể
WebView
trên thiết bị.Dừng và khởi động lại ứng dụng để bắt đầu kiểm thử với 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 tài liệu về DevTools WebView
.