我在Cordova CLI中创建了一个Phonegap iOS应用程序。我已经添加了控制台插件,并且yes deviceready被成功调用,但是console.log不能正常工作,并且不会在XCode日志中打印任何内容。
插件安装: -
cordova -v
3.3.1-0.3.1sudo cordova插件添加org.apache.cordova.console
通过插件注册表获取插件“org.apache.cordova.console” 为ios开始安装“org.apache.cordova.console” 准备ios项目
oros.apache.cordova.console安装在ios上。sudo cordova plugins 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.network信息',
'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
}
};
答案 0 :(得分:3)
我通过执行这些步骤解决了这个问题
第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/
第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.cordova.console”:“0.2.7”
答案 1 :(得分:1)
在我的情况下,原因可能是因为该插件是第一次从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>
答案 2 :(得分:1)
我尝试了很多在stackoverflow中发布的解决方案,但没有任何对我有用。把cordova.js放在我个人的JS文件夹console.log之后工作正常。
<script charset="utf-8" src="cordova.js"></script>
答案 3 :(得分:0)
在代码部分
中添加<script type="text/javascript" src="cordova.js"></script>
答案 4 :(得分:0)
确保执行以下操作:
function onDeviceReady() {
if (window.cordova.logger) {
window.cordova.logger.__onDeviceReady();
} } document.addEventListener('deviceready', onDeviceReady, false);`
答案 5 :(得分:-3)
就我而言,以下div缺失
<div id="deviceready" class="blink">
<p class="event listening">Connecting to Device</p>
<p class="event received">Device is Ready</p>
</div>