为什么cordova.exec()在“deviceready”之前在我的Android PhoneGap(1.7)应用程序中运行?

时间:2012-05-11 20:07:45

标签: android jquery-mobile cordova

我正在尝试“PhoneGap”(1.7.0)jQuery Mobile应用程序(1.1.0)我必须创建一个Android应用程序。但是,我一直收到以下警告信息。

ERROR: Attempting to call cordova.exec() before 'deviceready'. Ignoring.

出现好像在$ .ajax调用期间可能会发生这种情况,但很难确定。

我没有在我的应用程序中调用Cordova函数 - 这是纯粹的JQM。

任何想法是什么问题。或者,如果没有,有人知道为什么在$ .ajax请求期间可能会调用cordova.exec()吗?

我在Android 4.0.3下运行虚拟设备/模拟器中的应用程序。

2 个答案:

答案 0 :(得分:21)

我花了几个小时后遇到了类似的问题我意识到cordova-1.7.0.js(或者你的情况下是phonegap-1.7.0.js)属于iOS,因为我最初为iOS创建了项目我更换了这个文件与相关的android JS文件一起开始工作。

cordova-1.7.0.js对于不同的移动平台是不同的,对特定平台使用正确的JS文件。

答案 1 :(得分:0)

在我的情况下是因为

$(document).ready()...

函数未正常触发,所以我只是将其更改为javascript版本

<body onload="init();">

在html中 并定义了一个函数

function init(){ 
     document.addEventListener("deviceready", onDeviceReady, true);
}

在我的javascript文件中,它解决了问题