老大要求下載更新的時候有個進度條,不能讓用戶一直在那等著,提高用戶體驗 ?
其實很簡單 ,但是寫的過程中碰到了問題
直接貼代碼
var downToak = plus.downloader.createDownload(downurl, { ? //拿到下載任務(wù)的對象
filename: '_doc/update/'
}, function(d, status) {
plus.nativeUI.closeWaiting();
if(status == 200) { //在回調(diào)中根據(jù)狀態(tài) 進行操作
self.installWgt(d.filename);
} else {
app.alert("配置出錯,請檢查網(wǎng)絡(luò)鏈接!");
}
});
downToak.start(); // 開啟下載的任務(wù)
var prg = 0;
var showLoading = plus.nativeUI.showWaiting("正在下載"); ?//創(chuàng)建一個showWaiting對象?
downToak.addEventListener("statechanged", function(task, status) { ?//給下載任務(wù)設(shè)置一個監(jiān)聽 并根據(jù)狀態(tài) ?做操作
switch(task.state) {
case 1:
showLoading.setTitle("正在下載");
break;
case 2:
showLoading.setTitle("已連接到服務(wù)器");
break;
case 3:
prg = parseInt(parseFloat(task.downloadedSize) / parseFloat(task.totalSize) * 100);
if(prg % 10 == 0) { ?// 讓百分比 10% 增長,如果這里不這么處理 ?出現(xiàn) 堆棧內(nèi)存溢出的問題,有知道原因的大神指導(dǎo)一下哈
showLoading.setTitle(" 已下載" + prg + "% ");
}
break;
case 4:
plus.nativeUI.closeWaiting();
break;
}
});
大體就是這樣,但是做的過程中? 在case 3的情況下,我之前是沒有通過? showWaiting的對象去setTitle的 而是直接plus.nativeUI.showWaiting
這樣也會導(dǎo)致堆棧內(nèi)存溢出的問題,我分析是應(yīng)為在case 3的情況 ?不停地 showWaitting 導(dǎo)致溢出 ,如圖,到底是不是這個原因希望有知道的 大神 指導(dǎo)一下
