Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
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
valmyWebView:WebView=findViewById(R.id.webview)myWebView.webChromeClient=object:WebChromeClient(){overridefunonConsoleMessage(message:ConsoleMessage):Boolean{Log.d("MyApplication","${message.message()} -- From line "+"${message.lineNumber()} of ${message.sourceId()}")returntrue}}
Java
WebViewmyWebView=findViewById(R.id.webview);myWebView.setWebChromeClient(newWebChromeClient(){@OverridepublicbooleanonConsoleMessage(ConsoleMessageconsoleMessage){Log.d("MyApplication",consoleMessage.message()+" -- From line "+consoleMessage.lineNumber()+" of "+consoleMessage.sourceId());returntrue;}});
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:
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.
Nhấp vào 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ị.
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ị.
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.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-08-21 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-08-21 UTC."],[],[],null,["# Debug web apps\n\nYou can debug your JavaScript using the `console` JavaScript APIs and view the\noutput messages in Logcat. If you're familiar with debugging web pages with\nFirebug or Web Inspector, then you're probably familiar with using `console`\n(such as `console.log()`). Android's WebKit framework supports most of the same\nAPIs, so you can receive logs from your web page when debugging in your\n[`WebView`](/reference/android/webkit/WebView). This section describes how to use the console APIs for\ndebugging.\n| **Note:** You can also remotely debug your web pages in WebView with the Chrome Developer Tools. For more information, see [Remote debugging\n| WebViews](https://developer.chrome.com/docs/devtools/remote-debugging/webviews/).\n\nUse console APIs in WebView\n---------------------------\n\nThe console APIs are also supported when debugging in `WebView`. You must\nprovide a [`WebChromeClient`](/reference/android/webkit/WebChromeClient) that implements the\n[`onConsoleMessage()`](/reference/android/webkit/WebChromeClient#onConsoleMessage(android.webkit.ConsoleMessage)) method for console messages to appear in Logcat.\nThen, apply the `WebChromeClient` to your `WebView` with\n[`setWebChromeClient()`](/reference/android/webkit/WebView#setWebChromeClient(android.webkit.WebChromeClient)). For more information, see the [`WebView`](/reference/android/webkit/WebView)\ndocumentation.\n\nThe following example shows how to use console APIs in `WebView`: \n\n### Kotlin\n\n val myWebView: WebView = findViewById(R.id.webview)\n myWebView.webChromeClient = object : WebChromeClient() {\n\n override fun onConsoleMessage(message: ConsoleMessage): Boolean {\n Log.d(\"MyApplication\", \"${message.message()} -- From line \" +\n \"${message.lineNumber()} of ${message.sourceId()}\")\n return true\n }\n }\n\n### Java\n\n WebView myWebView = findViewById(R.id.webview);\n myWebView.setWebChromeClient(new WebChromeClient() {\n @Override\n public boolean onConsoleMessage(ConsoleMessage consoleMessage) {\n Log.d(\"MyApplication\", consoleMessage.message() + \" -- From line \" +\n consoleMessage.lineNumber() + \" of \" + consoleMessage.sourceId());\n return true;\n }\n });\n\n| **Warning:** Don't include personally-identifiable information (PII) in console messages.\n\nThe [`ConsoleMessage`](/reference/android/webkit/ConsoleMessage) also includes a [`MessageLevel`](/reference/android/webkit/ConsoleMessage.MessageLevel) object\nto indicate the type of console message being delivered. You can query the\nmessage level with [`messageLevel()`](/reference/android/webkit/ConsoleMessage#messageLevel()) to determine the severity of the\nmessage, then use the appropriate [`Log`](/reference/android/util/Log) method or take other appropriate\nactions.\n\nWhether you're using\n[`onConsoleMessage(String, int, String)`](/reference/android/webkit/WebChromeClient#onConsoleMessage(java.lang.String,%20int,%20java.lang.String)) or\n[`onConsoleMessage(ConsoleMessage)`](/reference/android/webkit/WebChromeClient#onConsoleMessage(android.webkit.ConsoleMessage)), when you execute a console method in\nyour web page, Android calls the appropriate `onConsoleMessage()` method so\nyou can report the error. For example, with the example code, a Logcat message\nis printed that looks like this: \n\n Hello World -- From line 82 of http://www.example.com/hello.html\n\n| **Note:** Logcat is a tool that dumps a log of system messages. The messages include a stack trace when the device throws an error as well as log messages written from your application and those written using the JavaScript `console` APIs. For more information, see [View logs with Logcat](/studio/debug/am-logcat).\n\nThe following are additional resources related to debugging:\n\n- [Remote debug Android devices](https://developer.chrome.com/docs/devtools/remote-debugging/)\n- [Debug your app](/studio/debug)\n\nTest experimental web features\n------------------------------\n\nSimilar to Google Chrome's `chrome://flags` page, you can also test experimental\nweb features in `WebView`.\n\nTo do this, take the following steps:\n\n1. [Install one of the `WebView` pre-release channels](https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/prerelease.md)\n (beta, dev, or canary){:.external}.\n\n2. [Switch the `WebView` channel](https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/prerelease.md#trichrome-beta) on your test device to the\n installed pre-release channel.\n\n3. Click the **WebView DevTools** launcher.\n\n **Figure 1.** WebView DevTools icon for app installed on a device.\n4. From DevTools, click the **Flags** item and search for any experimental\n features you'd like to enable or disable. The change applies to all\n `WebView` instances on the device.\n\n5. Stop and restart your app to start testing with the new features.\n\nFor more information about toggling flags, see the\n[`WebView` DevTools documentation](https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/developer-ui.md#Flag-UI)."]]