2013-03-12 60 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

相关问题