console.log不能在iOS PhoneGap 3.0应用程序中使用

我正在从PhoneGap 1.9升级到PhoneGap 3.0。 console.log()函数不再工作。 以前,输出是在XCode控制台中编写的。 什么是恢复日志loggingfunction的最佳方法?

我读过: PhoneGap 2.0不会在XCode中显示console.log,但是在PhoneGap 3.0 console.log中,即使在deviceReady事件之后也不起作用。

我也有兴趣在xcode中直接看到javascript错误。

您需要将debugging控制台插件添加到您的项目中:

phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-console.git 

在更高版本的phonegap / cordova中,要在您的项目中添加debugging控制台插件:

cordova plugin add org.apache.cordova.console

原来,至less在我的情况下,logging器的devicereadyfunction没有被调用。 logger.js的最后一行

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

解决scheme(或真正的解决方法)是从您的deviceready侦听logger.__onDeviceReady函数调用logger.__onDeviceReady函数:

 function onDeviceReady() { if (window.cordova.logger) { window.cordova.logger.__onDeviceReady(); } } document.addEventListener('deviceready', onDeviceReady, false); 

我发现JSconsole.com对于从移动设备远程捕获控制台日志非常有用。

如何设置它:

  1. 在你的应用程序index.html中,包含(更改ID):

      <script src="http://jsconsole.com/remote.js?<MAKE UP SOME UNIQUE ID>"></script> 
  2. 在您的计算机上,转到jsconsole.com并input:listen <YOUR UNIQUE ID>

在移动设备上打开您的应用程序,您将在计算机上看到控制台日志。

像山姆的答案一样添加控制台插件,并确保在每个页面上都包含cordova.js ,否则插件无法工作。

当使用phonegap插件时,我在脚本标记中添加phonegap.js,然后我发现插件(任何)只能在index.html页面上运行。 当我将phonegap.js更改为cordova.js时,插件(通知,相机等)开始工作在其余的页面上。 如果这有助于任何人。

如果您已经安装了Cordova控制台插件,那么当您运行您的应用程序时:

 phonegap run iOS 

你会发现日志在:

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

为IOS。 所有控制台日志都按预期显示。

问题

当通过命令行界面将控制台插件添加到ios平台(或重新安装后)时,会发生以下或类似的错误消息:

“CDVPlugin类CDVLogger(pluginName:Console)不存在”。

打开你的Xcode项目,并转到选项卡“构build阶段”。 现在打开名为“Compile Sources”的下拉列表。 点击列表末尾的“+”号,并添加“CDVLogger.m”或任何其他缺less的来源。

除了添加控制台插件,我还有另一个假设,为什么它可能无法正常工作:

consolegap中的console.log是asynchronous调用的,因此如果将来的调用失败,整个函数将失败,并且吞下所有的日志调用。

  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' ) } 

我发现GapDebug真的很有用。 不像其他任何[咳嗽咳嗽weinre],它让你从您的本地应用程序控制台login