console.log无法在iOS PhoneGap 3.0应用程序中运行

poi*_*rez 21 xcode ios cordova

我正在将应用程序从PhoneGap 1.9升级到PhoneGap 3.0.console.log()函数不再起作用.以前,输出是在XCode控制台中编写的.恢复日志记录功能的最佳方法是什么?

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

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

Sam*_*m T 31

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

phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-console.git
Run Code Online (Sandbox Code Playgroud)

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

cordova plugin add org.apache.cordova.console

  • 它适用于hello world项目,但不适用于我的真实应用项目.这真让我抓狂. (7认同)
  • 它开箱即用吗?我的xcode控制台中没有任何其他日志. (2认同)
  • 你能在xcode控制台中看到语法或错误吗?即使在HelloWorld中,我也无法在控制台中看到错误. (2认同)
  • 我们添加了插件并确保phonegap.js高于对"console.log"的任何调用,但Xcode中仍然没有显示任何内容.有线索吗? (2认同)

Jon*_*xon 30

事实证明,至少在我的情况下,deviceready记录器的功能没有被调用.最后一行logger.js.

document.addEventListener("deviceready", logger.__onDeviceReady, false);
Run Code Online (Sandbox Code Playgroud)

解决方案(或实际上是一种解决方法)是logger.__onDeviceReady从您的deviceready侦听器函数调用该函数:

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

document.addEventListener('deviceready', onDeviceReady, false);
Run Code Online (Sandbox Code Playgroud)


Fos*_*tah 9

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

下面是你如何设置它:

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

      <script src="http://jsconsole.com/remote.js?<MAKE UP SOME UNIQUE ID>"></script>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在您的计算机上,转到jsconsole.com并键入 :listen <YOUR UNIQUE ID>

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


Muh*_*sim 6

添加控制台插件,如Sam的答案,并确保在每个页面上包含cordova.js,否则没有插件工作.

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