Web app 下载更新的进度条

老大要求下载更新的时候有个进度条,不能让用户一直在那等着,提高用户体验  

其实很简单 ,但是写的过程中碰到了问题

直接贴代码

var downToak = plus.downloader.createDownload(downurl, {   //拿到下载任务的对象

filename: '_doc/update/'

}, function(d, status) {

plus.nativeUI.closeWaiting();

if(status == 200) { //在回调中根据状态 进行操作

self.installWgt(d.filename);

} else {

app.alert("配置出错,请检查网络链接!");

}

});

downToak.start(); // 开启下载的任务

var prg = 0;

var showLoading = plus.nativeUI.showWaiting("正在下载");  //创建一个showWaiting对象 

downToak.addEventListener("statechanged", function(task, status) {  //给下载任务设置一个监听 并根据状态  做操作

switch(task.state) {

case 1:

showLoading.setTitle("正在下载");

break;

case 2:

showLoading.setTitle("已连接到服务器");

break;

case 3:

prg = parseInt(parseFloat(task.downloadedSize) / parseFloat(task.totalSize) * 100);

if(prg % 10 == 0) {  // 让百分比 10% 增长,如果这里不这么处理  出现 堆栈内存溢出的问题,有知道原因的大神指导一下哈

showLoading.setTitle("   已下载" + prg + "%   ");

}

break;

case 4:

plus.nativeUI.closeWaiting();

break;

}

});

大体就是这样,但是做的过程中  在case 3的情况下,我之前是没有通过  showWaiting的对象去setTitle的 而是直接plus.nativeUI.showWaiting

这样也会导致堆栈内存溢出的问题,我分析是应为在case 3的情况  不停地 showWaitting 导致溢出 ,如图,到底是不是这个原因希望有知道的 大神 指导一下

Web app 下载更新的进度条_第1张图片

你可能感兴趣的:(Web app 下载更新的进度条)