Javascript 即使在添加控制台插件后,console.log仍无法在iOS Phonegap应用程序中工作

Javascript 即使在添加控制台插件后,console.log仍无法在iOS Phonegap应用程序中工作,javascript,ios,cordova,cordova-plugins,Javascript,Ios,Cordova,Cordova Plugins,我已经在Cordova CLI中创建了Phonegap iOS应用程序。我已经添加了控制台插件,并且成功调用了yes devicerady,但是console.log不工作,并且没有在XCode日志中打印任何内容 插件安装:- 科尔多瓦-v 3.3.1-0.3.1 sudo cordova插件添加org.apache.cordova.console 通过插件注册表获取插件“org.apache.cordova.console” 开始为ios安装“org.apache.cordova.consol

我已经在Cordova CLI中创建了Phonegap iOS应用程序。我已经添加了控制台插件,并且成功调用了yes devicerady,但是console.log不工作,并且没有在XCode日志中打印任何内容

插件安装:-

科尔多瓦-v
3.3.1-0.3.1

sudo cordova插件添加org.apache.cordova.console
通过插件注册表获取插件“org.apache.cordova.console”
开始为ios安装“org.apache.cordova.console”
准备ios项目
安装在ios上的org.apache.cordova.console

sudo cordova插件ls
['org.apache.cordova.console',
'org.apache.cordova.device',
'org.apache.cordova.dialogs',
“org.apache.cordova.geolocation”,
“org.apache.cordova.globalization”,
'org.apache.cordova.inappbrowser',
'org.apache.cordova.media',
“org.apache.cordova.networkinformation”,
'org.apache.cordova.splashscreen',
'org.apache.cordova.vibration']

Java脚本:-

var app = {
    initialize: function() {
       this.bindEvents();
    },
    bindEvents: function() {
       document.addEventListener('deviceready', this.onDeviceReady, false);
    },
    onDeviceReady: function() {
       app.receivedEvent('deviceready');
    },
    receivedEvent: function(id) {
       console.log('Device Ready Received'); //It is not working
       alert("Device ready called");  //It is Working
    }
};

我通过以下步骤解决了这个问题

第1步:

我只是从console.log工作的另一个cordova项目复制了一个目录

sudo cp -r DIFF_CORDOVA_PROJECT_PATH/platforms/ios/www/plugins/org.apache.cordova.console CURRENT_CORDOVA_PROJECT_PATH/platforms/ios/www/plugins/
第二步:

在module.exports JSON数组下的当前_CORDOVA_项目_PATH/platforms/ios/www/CORDOVA_plugins.js文件中添加代码

{
    "file": "plugins/org.apache.cordova.console/www/console-via-logger.js",
    "id": "org.apache.cordova.console.console",
    "clobbers": [
        "console"
    ]
},
{
    "file": "plugins/org.apache.cordova.console/www/logger.js",
    "id": "org.apache.cordova.console.logger",
    "clobbers": [
        "cordova.logger"
    ]
}
第三步:

在module.exports.metadata JSON数组中的同一cordova_plugins.js文件中添加元数据:-


“org.apache.cordova.console”:“0.2.7”

在我的例子中,原因可能是该插件是第一次从Windows机器上安装的,以前它只在Android平台上工作。 当我尝试从Macintosh重新安装它时,我遇到了与Shashi相同的问题

这是由于编译源代码列表中缺少源文件CDVLogger.m造成的。因此,我建议检查此文件是否已通过以下方式添加:

单击Xcode资源管理器>构建阶段>编译源代码部分中的根项目文件

如果CDVLogger.m文件不存在,请添加它并尝试再次运行该项目。这为我解决了这个问题

编辑:此外,请确保index.html页面包含以下html:

<div id="deviceready" class="blink">
    <p class="event listening">Connecting to Device</p>
    <p class="event received">Device is Ready</p>
</div>

连接到设备

设备已准备就绪


我在stackoverflow中尝试了很多解决方案,但都不管用。将cordova.js放在我的个人js文件夹console.log之外之后,一切正常

<script charset="utf-8" src="cordova.js"></script>

在我的例子中,下面的div丢失了

<div id="deviceready" class="blink">
  <p class="event listening">Connecting to Device</p>
  <p class="event received">Device is Ready</p>
</div>

连接到设备

设备已准备就绪


在代码部分中添加

我也有这个。我不会得到控制台输出,我的应用程序的default.html文件也不会真正加载。在我的情况下,问题是我的控制台插件实际上是一位小数(0.2.12而不是0.2.13)。我一更新一切就又开始工作了。。。啊


相关:

确保执行以下操作:

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

您是否尝试卸载插件并重新安装?是。与重新安装后遇到的问题相同:(嗯……它对我有用。也许你可以用一个新的示例项目再试一次。还有一个更新版本的Cordova(3.3.1-0.4.2)。也许这个版本对你有用。另外,请检查控制台在config.xml中的定义: