proyecto console.log no funciona en una aplicación iOS PhoneGap 3.0




generar app ios cordova (7)

Estoy actualizando una aplicación de PhoneGap 1.9 a PhoneGap 3.0. La función console.log () ya no funciona. Anteriormente, la salida se escribía en la consola XCode. ¿Cuál es la mejor manera de restaurar la función de registro?

He leído: PhoneGap 2.0 no muestra console.log en XCode pero en PhoneGap 3.0 console.log no funciona incluso después del evento deviceReady.

También estoy interesado en ver los errores de javascript directamente en xcode.


Encontré a JSconsole.com extremadamente útil para capturar de forma remota los registros de la consola desde dispositivos móviles.

Heres cómo lo configuraste:

  1. En sus aplicaciones index.html, Include (cambie la ID):

      <script src="http://jsconsole.com/remote.js?<MAKE UP SOME UNIQUE ID>"></script>
    
  2. En su computadora, vaya a jsconsole.com y escriba :listen <YOUR UNIQUE ID>

Abra su aplicación en su dispositivo móvil, verá los registros de la consola en su computadora.


Además de agregar el complemento de la consola, tengo otra suposición de por qué podría no funcionar:

console.log en Phonegap se llama de manera asíncrona, por lo tanto, si una llamada futura falla, la función completa falla y todas las llamadas de registro dentro se tragan.

  receivedEvent = function( id ) {
    alert( 'This message is displayed because alert is called synchronously ')
    console.log( 'This will not be displayed in Phonegap only in browser' )
    callingAFunctionWhichDoesNotExist()
    console.log( 'This will neither be displayed in Phonegap nor in browser' )
  }

Problema

El siguiente o un mensaje de error similar aparece cuando se agrega el complemento de la consola a la plataforma ios (o después de la reinstalación) a través de la interfaz de línea de comandos:

"CDVPlugin class CDVLogger (pluginName: Console) no existe."

Solución

Abra su proyecto de Xcode y vaya a la pestaña "Build Phases". Ahora abra el menú desplegable llamado "Fuentes de compilación". Haga clic en el signo "+" al final de la lista y agregue "CDVLogger.m" o cualquier otra fuente faltante.


Resultó, al menos en mi caso, que no se deviceready función de deviceready para el registrador. La última línea en logger.js .

document.addEventListener("deviceready", logger.__onDeviceReady, false);

La solución (o realmente una solución alternativa) es llamar al logger.__onDeviceReady función logger.__onDeviceReady desde su función de oyente deviceready el deviceready :

function onDeviceReady() {
    if (window.cordova.logger) {
        window.cordova.logger.__onDeviceReady();
    }
}

document.addEventListener('deviceready', onDeviceReady, false);

Si instaló el complemento de la consola Cordova, cuando ejecuta su aplicación:

phonegap run iOS

encontrará los registros en:

[your project dir]/platforms/ios/cordova/console.log

para IOS. Todos los registros de la consola aparecen como se esperaba.


Agregue el complemento de la consola como en la respuesta de Sam y asegúrese de incluir cordova.js en cada página, de lo contrario, no funciona ningún complemento.

Al usar los complementos de Phonegap, estaba agregando phonegap.js en la secuencia de comandos y noté que los complementos (cualquiera) solo funcionan en la página index.html. Cuando cambié phonegap.js a cordova.js, los complementos (notificación, cámara, etc.) comenzaron a funcionar en el resto de las páginas. Si esto ayuda a alguien


Encontré a GapDebug realmente útil. A diferencia de cualquier otra cosa [tos de tos weinre], te deja el registro de la consola desde tu aplicación local





cordova