Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Vous pouvez déboguer votre code JavaScript à l'aide des API JavaScript console et afficher les messages de sortie dans Logcat. Si vous avez l'habitude de déboguer des pages Web avec Firebug ou Web Inspector, vous connaissez probablement l'utilisation de console (comme console.log()). Le framework WebKit d'Android est compatible avec la plupart des mêmes API. Vous pouvez donc recevoir des journaux de votre page Web lorsque vous effectuez un débogage dans votre WebView. Cette section explique comment utiliser les API de la console pour le débogage.
Utiliser les API de la console dans WebView
Les API de la console sont également compatibles lors du débogage dans WebView. Vous devez fournir un WebChromeClient qui implémente la méthode onConsoleMessage() pour que les messages de la console s'affichent dans Logcat.
Appliquez ensuite le WebChromeClient à votre WebView avec setWebChromeClient(). Pour en savoir plus, consultez la documentation WebView.
L'exemple suivant montre comment utiliser les API de la console dans 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 inclut également un objet MessageLevel pour indiquer le type de message de console envoyé. Vous pouvez interroger le niveau du message avec messageLevel() pour déterminer la gravité du message, puis utiliser la méthode Log appropriée ou prendre d'autres mesures appropriées.
Que vous utilisiez onConsoleMessage(String, int, String) ou onConsoleMessage(ConsoleMessage), lorsque vous exécutez une méthode de console sur votre page Web, Android appelle la méthode onConsoleMessage() appropriée pour que vous puissiez signaler l'erreur. Par exemple, avec l'exemple de code, un message Logcat s'affiche et ressemble à ceci :
Hello World -- From line 82 of http://www.example.com/hello.html
Cliquez sur le lanceur d'outils de développement WebView.
Image 1. Icône des outils pour les développeurs WebView pour une application installée sur un appareil.
Dans les outils de développement, cliquez sur l'élément Indicateurs et recherchez les fonctionnalités expérimentales que vous souhaitez activer ou désactiver. La modification s'applique à toutes les instances WebView sur l'appareil.
Arrêtez et redémarrez votre application pour commencer à tester les nouvelles fonctionnalités.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/21 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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)."]]