Estoy trabajando en un proyecto que involucra a Raphaeljs. Resulta que no funciona en Android. Lo hace en el iPhone.
¿Cómo diablos hago para depurar algo en el navegador de Android? Es WebKit, así que si conozco la versión, ¿la depuración en esa versión completa de WebKit producirá los mismos resultados?
Respuestas:
Actualización: depuración remota
Anteriormente, el registro de la consola era la mejor opción para depurar JavaScript en Android. En estos días, con la depuración remota de Chrome para Android, podemos hacer uso de todas las bondades de las Herramientas para desarrolladores de Chrome para escritorio en Android. Consulte https://developers.google.com/chrome-developer-tools/docs/remote-debugging para obtener más información.
Actualización: consola de JavaScript
También puede navegar por about: debug en la barra de URL para activar el menú de depuración y la consola de error de JavaScript con dispositivos Android recientes. Debería ver SHOW JAVASCRIPT CONSOLE en la parte superior del navegador.
Actualmente en Android 4.0.3 (Ice Cream Sandwich), el logcat sale al canal del navegador. Para que pueda filtrar usando
adb logcat browser:* *:S
.Respuesta original
Puede usar el
console
objeto JavaScript incorporado para imprimir mensajes de registro que puede revisaradb logcat
.Produce esta salida:
Determinar la versión de WebKit
Si escribe
javascript:alert(navigator.userAgent)
en la barra de ubicación, verá la versión de WebKit listada, por ejemploEn cromo:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.221.6 Safari/532.2
En el emulador de Android
Mozilla/5.0 (Linux; U; Android 1.6; en-us; sdk Build/DRC76) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
nótese bien
Las versiones de WebKit que no forman parte de una versión de Safari tienen un + después del número de versión, y su número de versión es generalmente más alto que la última versión lanzada de WebKit. Entonces, por ejemplo, 528+ es una compilación no oficial de WebKit que es más nueva que la versión 525.x que se envió como parte de Safari 3.1.2.
fuente
Tratar:
mientras que en esa página, en la barra de direcciones de un navegador de Android, escriba:
(Tenga en cuenta que no sucede nada, pero se han habilitado algunas opciones nuevas).
Funciona en los dispositivos que he probado. Lea más sobre el navegador de Android sobre: depuración, ¿qué hacen esas configuraciones?
Editar: lo que también ayuda a recuperar más información como el número de línea es agregar este código a su script:
fuente
about:debug
desde dentro de la misma pestaña en la que tiene abierta su página actual. En lugar de navegar, mostrará "SHOW JAVASCRIPT CONSOLE" en la parte superior. Si intenta accederabout:debug
desde una nueva pestaña, no funcionará.about:debug
Realmente reenvía a lochrome://debug
que dice "no se puede encontrar" pero muestra unaDebug
opción en la configuración. Algunas de las opciones no entran en vigencia hasta que se abre una nueva pestaña después.El http://jsconsole.com ( http://jsconsole.com/remote-debugging.html ) proporciona una buena manera de acceder al contenido de su página web.
fuente
Yo uso Weinre , parte de Apache Cordova .
Con Weinre, obtengo la consola de depuración de Google Chrome en mi navegador de escritorio, y puedo conectar Android a esa consola de depuración, y depurar HTML y CSS. Puedo ejecutar comandos Javascript en la consola, y afectan la página web en el navegador de Android. Los mensajes de registro de Android aparecen en la consola de depuración de escritorio.
Sin embargo, creo que no es posible ver o recorrer el código Javascript real. Entonces combino Weinre con mensajes de registro.
(No sé mucho sobre JConsole, pero me parece que la inspección de HTML y CSS no es posible con JConsole, solo comandos y registro de Javascript (?)).
fuente
Echa un vistazo a jsHybugger . Le permitirá depurar remotamente su código js para:
Cómo funciona esto (más detalles y alternativas en el sitio de proyectos, esta fue la mejor manera).
Nuevamente, con Chrome en Android use la extensión ADB sin jsHybugger. Creo que esto ya se describe en la respuesta aceptada a esta pregunta.
fuente
Para su información, la razón por la que RaphaelJS no funciona en Android es que Android webkit (a diferencia del iPhone webkit) no es compatible con SVG en este momento. Google acaba de llegar a la conclusión de que SVG admite un Android es una buena idea, por lo que no estará disponible por algún tiempo.
fuente
Depuración remota completa de Chrome del navegador nativo de Android en un Galaxy S6 en Android 5.1.1:
Los dispositivos Galaxy S5 se muestran en Chrome pero las pestañas solo se muestran después de reiniciar. Después de reiniciar e intentar adjuntar, el navegador móvil se bloquea.
fuente
Raphael no es compatible con los navegadores Android pre 3.0, ese es el problema. No tienen soporte para gráficos SVG. Sin embargo, tiene soporte para lienzo. Si no necesita animarlo, puede renderizar los gráficos con canvg:
http://code.google.com/p/canvg/
Así es como solucionamos este problema para representar iconos SVG en el navegador predeterminado de Android.
fuente
El
about:debug
(ochrome:\\debug
ambas de las cuales dicen página no se puede encontrar, pero permiten el menú de depuración en la configuración) cuando se trató en Chrome u Opera en Android 4.4.2 KitKat en un Tab de SamsungSi tiene permisos ROOT en su dispositivo, puede ver los mensajes de la consola directamente en el dispositivo. Use una aplicación como CatLog para ver la salida del registro: https://play.google.com/store/apps/details?id=com.nolanlawson.logcat&hl=en Esto le permitirá ver toda la actividad de logcat.
En Android KitKat / 4.4.2, la consola del navegador se envía al canal Chromium. Puede filtrar por "Chromium" para obtener toda la actividad del navegador (incluida la actividad interna del navegador), o simplemente filtrar por "Consola" para ver solo el registro de la consola del navegador.
fuente
Poner en la línea de dirección
chrome://about
. Verá enlaces a todas las páginas de desarrollo posibles.fuente
Puede probar la consola integrada YConsole a js. Es liviano y fácil de usar.
Cómo utilizar :
fuente
Cuando ejecute el emulador de Android, abra su navegador Google Chrome y, en el 'campo de dirección', ingrese:
Verá una lista de sus objetivos remotos. Encuentre su objetivo y haga clic en el enlace 'inspeccionar'.
fuente
Chrome tiene una característica maravillosa que simplemente lleva el contenido real de Android Chrome (incluida la inspección, etc.) a la pantalla de la PC ...
adb devices
para activar el diálogo "permitir comunicación con ..." en el dispositivo móvil,chrome://inspect/#devices
en la PC.También hay un manual detallado en la red: https://www.till.net/technologie/html-javascript/remote-web-debugging-unter-android-und-chrome
(descubrió que después
adb logcat
no mostró nada del navegador)fuente
Mi solución es (para el navegador de valores):
fuente
Android Studio proporciona todo lo que necesita para ver console.log y otros. En logcat simplemente filtre a "/ Web Console" y verá sus registros js ...
Si tiene algún problema, puede agregar este complemento: https://github.com/apache/cordova-plugin-console
fuente
Si está buscando opciones no remotas:
En versiones anteriores y no rooteadas de Jellybean, se puede usar un visor logcat si android.permission.READL_LOGS se otorga a través de adb una vez.
En firefox, hay un complemento de consola que lee y muestra todos los registros de aplicaciones y también hay firebug lite .
fuente
Puede probar "javascript-compiler-deva" desde la biblioteca npm ejecutando el comando "npm install javascript-compiler-deva" y luego ejecutando compiler.is usando "node compiler.js".
Crea un servidor en el puerto 8888. Luego puede presionar " http: // localhost: 8888 " e ingresar su código JavaScript y puede ver el resultado de cualquier código JavaScript que incluya "console.log" en el navegador del teléfono.
También está alojado en " https://javascript-compiler-deva.herokuapp.com/ "
fuente
Las opciones locales de depuración / about: config ... parecen no funcionar en los navegadores chrome / ff / .. 2020+.
Otro navegador con consola js no remota es DevBrowser
o WebInspector (el selector de archivos no funciona)
fuente