我最近设法将我的Phonegap版本从2.9升级到3.3并且刚刚设法升级我的项目以便在3.3中工作
我现在收到一个错误,我的应用程序将不会进入deviceready()状态。在更改为+3.0之前,我的应用程序输入deviceready()就好......我已经运行了CLI'build'和'update'命令将我的项目修改为+3.0规范并自行调整了一些事情,所以确定错误关于插件将被解决。
我还应该提一下,我最近才添加了这部分,它似乎解决了一个NPObject错误(在phonegap生成的helloworld应用程序中看到它,我想应该添加它):
<script src="js/index.js">app.initialize()</script>
以下是应该调用deviceready的相关html代码块:
在index.html中:
<script src="js/jquery.js"></script>
<script src="js/jquery.mobile-1.2.0.js"></script>
<script src="cordova/lib/cordova.js"></script>
<script src="js/index.js">app.initialize()</script>
<script src="js/mustache.js"></script>
<script>
.
.
.
function init() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
//db = window.openDatabase("Notes","1.0","Saved Notes", 200000);
//db.transaction(getDBNotes, onDBError, onDBSuccess);
console.log("WITHIN onDeviceReady()");
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFSSuccess, onFSError);
}
这是我的index.js文件,以防这一点很重要:
var app = {
// Application Constructor
initialize: function() {
this.bindEvents();
},
// Bind Event Listeners
//
// Bind any events that are required on startup. Common events are:
// 'load', 'deviceready', 'offline', and 'online'.
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
// deviceready Event Handler
//
// The scope of 'this' is the event. In order to call the 'receivedEvent'
// function, we must explicity call 'app.receivedEvent(...);'
onDeviceReady: function() {
app.receivedEvent('deviceready');
console.log("within index.js- app.onDeviceReady()");
},
// Update DOM on a Received Event
receivedEvent: function(id) {
var parentElement = document.getElementById(id);
var listeningElement = parentElement.querySelector('.listening');
var receivedElement = parentElement.querySelector('.received');
listeningElement.setAttribute('style', 'display:none;');
receivedElement.setAttribute('style', 'display:block;');
console.log('Received Event: ' + id);
}
};
当我在我的设备上的eclipse中运行我的应用程序时,我收到此错误:
"deviceready has not fired after 5 second.", source: file://android_asset/www/cordova.lib/cordova.js
我一直绞尽脑汁想要让这个项目正常运行,所以我可以继续开发,但我似乎无法解决这个问题。
感谢您的帮助!
答案 0 :(得分:0)
我遇到了同样的问题,我在Eclipse的日志中一直看到这个问题。
&#34; E / Web控制台(7662):未捕获的模块 org.apache.cordova.plugin.canvas.canvas已定义:79&#34;
想通了如果我从&#34; platforms / android / .staging / www / cordova_plugins.js&#34;中删除了它,它似乎解决了我的问题,因为它将自己扔出Cordova.js,因为这是一个例外。
03-12 17:21:10.411: E/Web Console(7662): Uncaught module
org.apache.cordova.plugin.canvas.canvas already defined:79
答案 1 :(得分:0)
我认为将以下内容添加到config.xml将起作用。出于与我在answer
中概述的相同的原因<gap:plugin name="org.apache.cordova.device" />
答案 2 :(得分:0)
Cordova 3更改了cordova / phonegap脚本的引用方式,请尝试更改此内容:
<script src="cordova/lib/cordova.js"></script>
到此:
<script src="cordova.js"></script>