Je développe l'application en HTML qui appelle la fonction console.log()
de JavaScript pour me fournir des journaux pendant le développement sur ce qui se passe dans le code de page Web.
Malheureusement, lorsque j'utilise la commande adb logcat
Pour vérifier les journaux que je peux voir la sortie de toutes les autres applications, mais pas la sortie de mon code JavaScript. Je peux voir même le journal du navigateur Web que la page est chargée, mais pas console.log()
Sortie de mon code JavaScript exécuté dans le navigateur Web.
Selon des informations sur - cette page ( http://developer.android.com/guide/webapps/debugging.html ) il devrait fonctionner.
Je teste sur HTC Wildfire et HTC Desire HD.
édité après plus de 6 mois
Après un certain temps et de l'expérience avec les différents appareils (téléphones, téléviseurs, décodeurs set, WebViews, UIWebViews ...) mon conseil est de faire la la connexion à distance à partir de JavaScript et ne pas compter sur le console.log () ou d'autres méthodes - voir l'affaire de Nice avec le chargement d'image ici .
Ne manquez pas la présentation ici J'espère que cela vous aide! Sévère
Dans le navigateur par défaut sur Android 2.3.3 (et vraisemblablement à partir de ce dernier), vous pouvez simplement utiliser la console JavaScript intégrée:
about:debug
Dans la barre d'adresse et appuyez sur EntréeEn haut, vous verrez une barre étiquetée "Console JavaScript".
J'utilise trois téléphones HTC différents, presque exclusivement et je n'ai jamais eu cette question. Voici quelques éléments à vérifier:
Activez le débogage USB:
Définissez une chromeclient Web qui remplace Onconsolemessage ():
//Set the output prefix so you can filter adb logcat results later
public static final String TAG = "Your-Application-Name";
myWebView = (WebView) findViewById(R.id.webview);
//Not going to have much luck running JS without this:
myWebView.getSettings().setJavaScriptEnabled(true);
//Override onConsoleMessage() to output to the Log.
myWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onConsoleMessage(ConsoleMessage cm) {
Log.d(TAG, cm.message() + " -- From line "
+ cm.lineNumber() + " of "
+ cm.sourceId() );
return true;
}
});
Plus d'informations sur Onconsolemessage () Ici: http://developer.android.com/reference/andrroid/webkit/webchromeclient.html#onconsolemessage (java.lang.string , int, java.lang.string)
Plus d'informations sur le débogage en général ici: http://developer.android.com/guide/webapps/debugging.html
Filtrer la sortie de ADB LOGCAT:
adb logcat tag-name:log-level *:S
nom-nom correspond à la chaîne spécifiée dans log.x Le niveau de journal correspond au niveau de journal que vous avez indiqué lors de l'appel de log.x <---
Exemple relatif au code ci-dessus:
adb logcat Your-Application-Name:D *:S
Cela affichera toutes les journaux de niveau D pour la balise correspondante, votre nom d'application et un silence tout le reste.
Plus d'informations sur le filtrage ADB ici: http://developer.android.com/guide/developing/tools/adb.html#logcat
J'espère que ça aide! Je sais que c'était un peu résumée des autres réponses, mais le fait est que toutes les étapes pour le faire fonctionner. :)
J'ai eu le même problème, je le résout en faisant ce qui suit:
1/Lorsque vous initialisez votre webview, ajoutez une classe de pont JavaScript:
appView.addJavascriptInterface(new JSBridge(), "JSBridge");
2/Créer la classe JSBridge avec une fonction de journalisation
class JSBridge {
public void log(String msg){
Log.d(msg);
}
}
3/Dans votre JavaScript, vous pouvez maintenant appeler
JSBridge.log("my log message");
Pourrait être un peu surkill pour votre problème, mais vous pouvez également faire beaucoup plus avec cette solution
LogCat génère beaucoup de choses sur les périphériques en plus du vôtre afin que vous puissiez devoir filtrer cela.
Vous pouvez essayer de "grep" votre sortie de journal si vous l'avez marquée. Par exemple: ACORDING à votre article La sortie devrait ressembler à:
Console: Hello World http://www.example.com/hello.html :82
Si vous utilisez la commande (en supposant que vous utilisiez un système de système d'exploitation Linux, Mac ou autre chose avec une commande Grep)
adb logcat | grep -i "console"
il réduira la sortie du mot-clé spécifié dans ces guillemets. Si vous ajoutez une balise unique à votre sortie, vous pouvez également le filtrer afin que vous n'obtenez que des choses que vous souhaitez voir.
[ctrl]+c
arrêtera ce processus logcat.
Il semble que Console.Log soit désactivé sur les périphériques HTC exécutant Android 2.2.
Vous pouvez le contourner en utilisant Débogage à distance dans jsconsole.com .
Essayez ce qui suit:
1) Ouvrez l'onglet Périphériques et assurez-vous que le périphérique que vous avez connecté est sélectionné/en surbrillance.
2) Assurez-vous que le débogage USB est activé sur votre appareil. Voici ce que vous devez faire pour cela:
2a) À partir de l'écran d'accueil, appuyez sur Menu, puis sur Paramètres> Applications> Développement.
2b) Assurez-vous que la case à cocher USB de débogage est sélectionnée.