2012-01-04 22 views
5

Estoy experimentando un comportamiento diferente de JavaScript al ejecutar mi sitio en Kindle Fire que a través de Chrome. Para depurar esto, necesito acceso a algo como Chrome Developer Tool o Firebug. ¿Alguna sugerencia?Cómo depurar el navegador de seda en el Kindle Fire?

+0

FWIW, ahora uso Weinre cuando necesito hacer esto. jsconsole es genial, pero weinre proporciona la misma herramienta de depuración que la barra de herramientas de desarrollador de Chrome. Es un poco complicado de configurar pero vale la pena: http://people.apache.org/~pmuellr/weinre/docs/latest/ –

Respuesta

5

En el mismo barco aquí ... esperaba que adb logcat ayudaría, pero los mensajes de la consola de JavaScript no parecen aparecer allí. Tal vez hay algo que debe establecerse en el dispositivo para dirigir los registros de la consola a Logcat.

corregir: encontró una solución decente: http://jsconsole.com - le permite configurar una consola remota de depuración/registro. Bastante simple (solo para el registro de la consola, por lo que tendrás que volcar mucho en los registros) ... pero funciona bien. ¡Me ayudó a rastrear el origen de mis problemas, al menos!

de cómo hacerlo: http://jsconsole.com/remote-debugging.html

+0

: O ¿Dónde ha estado jsconsole.com toda mi vida? Muy útil. ¡Gracias! – Meekohi

+0

Esto es excelente. – mckamey

0

Me tomó un enfoque diferente y crearon una aplicación nativa de contenedor que aparezca un cuadro de diálogo para JavaScript.

El código de mi envoltorio es bastante grande, así que tomé un fragmento de las partes relavantes. En realidad funciona y mostrará CUALQUIER error de JavaScript.

// registers the debugger to catch errors 
WebView engine = (WebView) findViewById(R.id.web_engine); 
engine.setWebChromeClient(new DebugClient(this)); 

// the class that manages the errors 
private class DebugClient extends WebChromeClient { 
     Activity activity; 

     public DebugClient(Activity activity) { 
      this.activity = activity; 
     } 

     @Override 
     public boolean onConsoleMessage(ConsoleMessage consoleMessage) { 
      if (consoleMessage.messageLevel() == MessageLevel.ERROR 
        || consoleMessage.messageLevel() == MessageLevel.WARNING) { 
       String title="Javascript error on line " 
         + String.valueOf(consoleMessage.lineNumber()) 
         + " of " + consoleMessage.sourceId(); 
       AlertBox alertBox=new AlertBox(activity, (ActionListener)null, title, consoleMessage.message(), "OK"); 
       alertBox.show(); 
       alertBoxes.add(alertBox); 
      } 
      return true; 
     } 
    } 

Para compilar este, tendrá que instalar el SDK de Android en su ordenador, y probablemente un IDE Java (Eclipse?) Con ADT. A continuación, haga lo siguiente: cree un nuevo proyecto, agregue un componente WebView en su diseño/main.xml y pegue el código. Compila e instala en tu Kindle Fire.

Cuestiones relacionadas