uni.request({
url: "http://2132", //請求更新地址
data: '',
success(res) {
if (!!res.data) {
uni.showModal({
title: '版本更新' + res.data.versionCode,
content: res.data.description,
confirmText: "更新",
showCancel: !res.forceUpdate,
success: function(e) {
if (e.confirm) {
if (plus.os.name.toLowerCase() == 'ios') {
// 跳轉到下載頁面
plus.runtime.openURL(res.data.upgradeUrl)
} else {
var dtask = plus.downloader.createDownload(
res.data.upgradeUrl, {},
function(d, status) {
uni.showToast({
title: '下載完成',
mask: false,
duration: 1000
});
// 下載完成
if (status == 200) {
plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), {}, e => e, function(error) {
uni.showToast({
title: '安裝失敗-01',
mask: false,
duration: 1500
});
})
} else {
uni.showToast({
title: '更新失敗-02',
mask: false,
duration: 1500
});
}
});
try {
dtask.start(); // 開啟下載的任務
var prg = 0;
var showLoading = plus.nativeUI.showWaiting("正在下載"); //創建一個showWaiting對象
dtask.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
);
showLoading.setTitle(" 正在下載" + prg + "% ");
break;
case 4:
plus.nativeUI.closeWaiting();
//下載完成
break;
}
});
} catch (err) {
plus.nativeUI.closeWaiting();
uni.showToast({
title: '更新失敗-03',
mask: false,
duration: 1500
});
}
}
} else {
//取消
}
}
});
} else {
uni.showModal({
title: '提示',
content: '已是最新版本',
showCancel: false
});
}
},
})
————————————————
版權聲明:本文為CSDN博主「騎着代碼去流浪」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_36185028/article/details/103126680