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器的deviceready
function没有被调用。 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对于从移动设备远程捕获控制台日志非常有用。
如何设置它:
-
在你的应用程序index.html中,包含(更改ID):
<script src="http://jsconsole.com/remote.js?<MAKE UP SOME UNIQUE ID>"></script>
- 在您的计算机上,转到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
- Cordova – 不推荐尝试访问非导航器对象上的属性“userAgent”
- iOS Cordova:当Cordova多次调用时,Cordova会创build多个Objective-C插件实例吗?
- PhoneGap / Apache Cordova提出了一个用于encryptionSQLite数据库的API
- Video.js在iOS上的文件加载期间暂停
- Phonegap 3.5.0 Cordova File API错误:无法读取未定义的属性'dataDirectory'
- cordova远程ios构build失败
- 在更新到3.3.0之后,Cordovavideo/audio将不会从cdvfile:// urls播放
- 关于iOSionic framework的IPv6networking
- 如何在PhoneGap / Cordova 2.0中使用预先填充的SQLite数据库?