Come visualizzare i messaggi console.log di un sito Web utilizzando il simulatore Android?browser console.log in emulatore android
risposta
Dal breve articolo di Rich Chetwynd "Javascript debugging su browser Android".
È possibile registrare gli errori javascript e i messaggi della console dal dispositivo o dall'emulatore Android. Per fare questo è necessario prima installare i driver Android SDK e USB e abilitare il debug USB sul dispositivo reale.
Per verificare se il dispositivo è collegato correttamente è possibile eseguire il seguente cmd dalla directory strumenti SDK Android e si dovrebbe vedere un dispositivo nell'elenco
c:\android sdk..\platform-tools\adb devices
È possibile quindi utilizzare il Debug Bridge Android per filtrare i messaggi di debug in modo da visualizzare solo i messaggi relativi al browser eseguendo il seguente cmd.
c:\android sdk..\platform-tools\adb logcat browser:V *:S
Di default il log viene scritto su stdout così potrete vedere eventuali errori JavaScript o messaggi console.log ecc scritti alla finestra cmd.
Si potrebbe aggiungere un po 'di JavaScript temporaneamente come ...
var console = {
log: function(msg) { alert(msg); }
};
brutto come l'inferno, ma funziona.
Se si è avviato l'emulatore dalla Eclipse
con l'ADT plugin
, vedrete tutti JavaScript
log della console direttamente sotto la vista LogCat:
Window -> Show View -> Android -> LogCat
ho dirottato il console.log utilizzando questo codice:
function logManager() {
var self = this;
self.init = function() {
console.log('logmanager initialized');
var old = console.log;
self.logger = document.getElementById('log');
console.log = function (message, options) {
if (typeof message == 'object') {
self.logger.innerHTML = (JSON && JSON.stringify ? JSON.stringify(message) : message) + '<br />' + self.logger.innerHTML;
} else {
self.logger.innerHTML = message + '<br />' + self.logger.innerHTML;
}
}
}
self.toggleLogVisibility = function() {
return $(self.logger).toggle();
};
}
E consumarlo così nel tuo html con il tuo stile (in alto a destra in alto è quello che ho usato)
<div id="log" class="log">
Application loaded...
</div>
E nel tuo JScript (eseguire questo a pagina caricata come elemento di registro deve esistere)
document.lmgr = new logManager();
document.lmgr.init();
Link è morto :(Qualcuno sa se ciò che esiste altrove? – Jesse
Il testo dell'articolo originale è stato copiato nella risposta. Questo è tutto ciò che c'è da fare. –
Vedo - 'browser logcat in esecuzione: V *: S' sembra emettere tutti i log per me, ho dovuto reindirizzarlo a grep per ottenere i log rilevanti. – Jesse