2013-03-12 38 views
1

我試圖製作一個電池應用程序,將電池電量從0%動畫到當前級別,作爲Jquery的動畫。完全加載應用程序時的Phonegap

它正在工作,但..當我的應用程序被加載,啓動畫面完成後,科爾多瓦已經加載,動畫幾乎完成。我知道這一點的唯一原因是因爲我將動畫設置爲5秒。

我想這樣做,當應用程序加載時,動畫開始。

我不確定這個「狀態」即時通訊引用有一個直接的事件名稱左右。所以我很抱歉,如果我無法用真實的話來形容它。 :-)

考慮下面的代碼:

document.addEventListener("deviceready", onDeviceReady, false); 

function onDeviceReady() { 
    window.addEventListener("batterystatus", onBatteryStatus, false); 
} 

function onBatteryStatus(info) { 
    $("div#status").animate({ width: bat + "%" }, 5000); 
} 

回答

1

你可能要考慮使用PhoneGap的閃屏功能:

PhoneGap Splash Screen API Doc

你應該打電話給你的啓動屏幕上的東西(DroidGap)Java端,讓PhoneGap的做它在後臺,而自己的工作啓動畫面正在顯示。此博文,其中包括相關的代碼應該可以幫助你解決問題:

Splash Screens in PhoneGap

現在應該發生什麼是PhoneGap的將加載,然後閃屏將顯示在充分​​。希望這能解決你的問題!

+0

你的意思是在我的jquery div#狀態調用周圍包裝document.ready?如果是這樣,我已經試過了:-) – Daniel 2013-03-12 16:51:44

+1

哦酷,所以你的主要問題是PhoneGaps onDeviceReady發射太早? – MattTheHack 2013-03-12 17:08:40

+0

是的,我猜這就是它。我的動畫在我看到它之前就會熄滅,所以僅僅因爲我選擇了5秒鐘,我只能看到500毫秒。就像最後一個一樣。 – Daniel 2013-03-12 18:18:36

1

它看起來就像你在從我可以看到正確的方向去。以下是我的基地科爾多瓦項目是如何設置的。

的Javascript

var app = { 
// Application Constructor 
initialize: function() { 
    this.bindEvents(); 
}, 
// Bind Event Listeners 
// 
// Bind any events that are required on startup. Common events are: 
// `load`, `deviceready`, `offline`, and `online`. 
bindEvents: function() { 
    document.addEventListener('deviceready', this.onDeviceReady, false); 
}, 
// deviceready Event Handler 
// 
// The scope of `this` is the event. In order to call the `receivedEvent` 
// function, we must explicity call `app.receivedEvent(...);` 
onDeviceReady: function() { 
    // Get battery status HERE 
} 
}; 

然後在我的 「的index.html」 我初始化像這樣我的應用程序類:

<script type="text/javascript"> 
    app.initialize(); 
</script> 
+0

不錯,我打算看看它,現在我要回家了:-) – Daniel 2013-03-12 13:50:25

相關問題