2
在我的應用程序中,我在調用index.html中的腳本文件時調用函數init()。以下代碼應驗證cordova是否已成功加載(適用於現代手機,特別適用於較老的黑莓手機),然後調用onDeviceReady函數。如何防止PhoneGap設備就緒功能執行兩次
我改編了Jamie Munro的「編程PhoneGap的20個食譜」中的代碼,但它沒有正常工作(intervalID僅在本地可用)。後來發現onDeviceReady函數被多次調用......我嘗試了幾種方法來防止它,但即使是下面的例子在ripple仿真器中運行時也沒有辦法。
我錯過了什麼?
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');
}
}
設備是否準備好在設備上多次調用?漣漪很多次都會出現異常,並且會發生兩次大部分事件。 – Whizkid747 2013-04-03 22:55:17
它在黑莓手機上表現很好,所以我認爲這只是一個小小的漣漪而已...... – 2013-04-07 10:35:39
是的......總是在設備模擬器或實際設備上測試 – Whizkid747 2013-04-07 14:58:38