我从 PhoneGap 看到了一些奇怪的行为。OnDeviceReady 会触发,但是当我使用“设备”变量时,它仍然是未定义的。我找到了一些与此相关的代码,并说使用 setTimeout 等待一秒钟(再次,在它说准备好之后)以实际使用变量(如下):
setTimeout(function () {
MobileDevice = new MobiDevice(device);
}, 1000);
最初这似乎可行,但现在看来时间不确定。我最近不得不将超时设置为 5000。这是我们当前的代码:
setTimeout(function () {
console.log("starting setup");
try {
MobileDevice = new MobiDevice(device);
console.log("created MobiDevice from a real device");
}
catch (error) {
console.log("no device reference - mocking device");
var d = {
platform: "Android",
version: 5
};
MobileDevice = new MobiDevice(d);
}
console.log("device setup complete");
}, 5000);
如果确实是时间不确定的情况,那么其他人使用了哪些策略来解决这个问题。如果它不应该是不确定的,我可以在哪里寻找修复。
提前致谢