ATTN PhoneGap / Cordova项目贡献者:以两种不同的方式调用deviceready回调问题

时间:2012-06-06 06:41:24

标签: ios cordova uiwebview

我第一次加载我的cordova应用程序时,第130行的断点(请参阅附图)会被击中。它调用deviceready委托函数,一切都很好。

Debugger screenshot

我导航到另一个页面然后当我执行window.history.back()(回到原始页面)时,deviceready事件以不同的方式触发(请参阅135上的断点)。没有DeviceInfo使Cordova“不可用”。请注意以下来自cordova.js的摘录:

Cordova.available = DeviceInfo.uuid != undefined;

这也意味着,即使我在等待deviceready事件调用Cordova.exec,它也总是会失败。这是cordova.js的另一段摘录,说明了原因。

Cordova.exec = function() { 
    if (!Cordova.available) {
        alert("ERROR: Attempting to call Cordova.exec()"
              +" before 'deviceready'. Ignoring.");
        return;
    }

所以我的问题是;为什么有两种方式,cordova会调用该设备,为什么当我通过浏览器返回页面时它会使用'dud'方式?

1 个答案:

答案 0 :(得分:0)

这看起来是版本1.5或更早版本。在最近的版本中,deviceReady的加载和触发发生了显着变化。