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



我在Cordova CLI中创建了一个Phonegap iOS应用程序。我已经添加了控制台插件,是的,deviceready被成功调用,但console.log不工作,也没有在XCode日志中打印任何东西。

插件安装:-

cordova-v
3.3.1-0.3.1

sudo cordova插件添加org.apache.codova.console
通过插件注册表获取插件"org.apache.condova.console">
开始为ios安装"org.apache/codova.conconsole">
准备安装在ios上的ios项目
org.apache.cordova.console。

sudo cordova插件ls
["org.apache.codova.coconsole",
"org.apache.cadova.device",
"org.apache.codova.dialogies",
"org.apache.codova.geolocation",
"org.apache.codova.globalization",
"rg.apache.cadova.inappbrowser",
"rg.codova.media">

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:

我只是从另一个cordova项目复制了一个目录,console.log正在中工作

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

步骤2:

在module.exports JSON数组下的CURRENT_CORDOVA_PROJECT_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"
]
}

步骤3:

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

"org.apache.codova.coconsole":"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>

在代码的部分中添加<script type="text/javascript" src="cordova.js"></script>

我也经历过这种情况。我将不会得到控制台输出,我的应用程序的default.html文件也永远不会真正加载。在我的情况下,问题是我的控制台插件实际上是一个小数点后/旧的(0.2.12而不是0.2.13)。当我更新后,一切都开始重新工作。。。啊!

相关:https://stackoverflow.com/a/32035260/826308

确保执行以下操作:

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

在我的案例中,下面的div缺少

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

最新更新