【发布时间】:2013-06-29 05:03:41
【问题描述】:
在我的应用程序中,我在加载 index.html 中的脚本文件时调用函数 init()。以下代码应验证 cordova 是否已成功加载(适用于现代手机,但也适用于较旧的 BlackBerries)并随后调用 onDeviceReady 函数。
我改编了 Jamie Munro 的“PhoneGap 编程的 20 个秘诀”中的代码,但它不能正常工作(intervalID 仅在本地可用)。后来发现 onDeviceReady 函数被调用了多次......我尝试了几种方法来防止它,但即使是下面的示例在波纹模拟器中运行时也无法解决问题。
我错过了什么?
var count = 0
function init() {
// Add an event listener for deviceready
document.addEventListener("deviceready", onDeviceReady, false);
// Older versions of Blackberry < 5.0 don't support
// PhoneGap's custom events, so instead we need to perform
// an interval check every 500 milliseconds to see whether
// PhoneGap is ready. Once done, the interval will be
// cleared and normal processing can begin.
intervalID = window.setInterval(function() {
if (window.cordova) {
window.clearInterval(intervalID);
onDeviceReady();
}
}, 1000);
}
function onDeviceReady() {
if(count == 0) {
count += 1;
alert('The device is now ready');
}
}
【问题讨论】:
-
设备是否准备好在设备上被多次调用? Ripple 行为不端很多次,大多数事件会触发两次。
-
它实际上在黑莓上表现良好,所以我想这只是 chrome 中的一点点涟漪......
-
是的...总是在设备模拟器或实际设备上测试
标签: javascript cordova ripple