我在Cordova CLI中创建了一个Phonegap iOS应用程序。我已经添加了控制台插件,是的,deviceready被成功调用,但console.log不工作,也没有在XCode日志中打印任何东西。
插件安装:-
cordova-v
3.3.1-0.3.1sudo 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>