2010-10-18 24 views

Respuesta

17

De breve artículo de Rich Chetwynd "Depuración de JavaScript en el navegador de Android".

Puede registrar los errores de javascript y los mensajes de la consola desde su dispositivo Android o emulador. Para hacerlo, primero debe instalar los controladores Android SDK y USB y habilitar la depuración de USB en el dispositivo real.

para comprobar si el dispositivo está conectado correctamente, puede ejecutar el siguiente cmd desde el directorio de herramientas de SDK de Android y debería ver un dispositivo en la lista

c:\android sdk..\platform-tools\adb devices

continuación, puede utilizar el puente de depuración de Android para filtrar los mensajes de depuración para que solo vea los mensajes relacionados con el navegador ejecutando el siguiente cmd.

c:\android sdk..\platform-tools\adb logcat browser:V *:S

Por defecto, el registro se escribe en la salida estándar por lo que verá los errores de Javascript o mensajes console.log etc escritos en la ventana de cmd.

+0

Enlace está muerto :(Alguien sabe si lo que existe en otro sitio? – Jesse

+0

El texto del artículo original fue copiado en la respuesta. Eso es todo al respecto. –

+0

I See - 'funcionamiento del navegador Logcat: V *: S' parece salida de todos los registros para mí, tuve que canalizarlo a grep para obtener los registros pertinentes. Bajo – Jesse

2

Se podría añadir algo de JavaScript temporalmente como ...

var console = { 
    log: function(msg) { alert(msg); } 
}; 

feo como el infierno, pero funciona.

6

Si ha iniciado el emulador de Eclipse con el ADT plugin, verá todos los registros de la consola JavaScript directamente bajo el punto de vista LogCat:

Window -> Show View -> Android -> LogCat 
3

me secuestraron el console.log utilizando este código:

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(); 
    }; 
} 

Y cómprelo así en su html con su propio estilo (absoluto arriba a la derecha es lo que usé)

<div id="log" class="log"> 
    Application loaded... 
</div> 

Y en su JScript (ejecutar esto en la página cargada como el elemento de registro tiene que existir)

document.lmgr = new logManager(); 
document.lmgr.init();