App.vue
onLaunch: function() {
// #ifdef APP-PLUS
plus.runtime.getProperty(plus.runtime.appid, function(res) {
console.log("当前应用版本号", res.version);
'你的接口查询服务端的版本号'().then(v => {
console.log("服务器版本号", v.data);
if (res.version !== v.data) {
uni.showModal({
title: "提示",
content: "发现新的应用安装包,点击确定立即更新",
success(s) {
if (s.confirm) {
let showLoading = plus.nativeUI.showWaiting(
"正在下载"); //创建一个showWaiting对象
console.log("用户点击更新");
const downloadTask = uni.downloadFile({
// 下载文件
url: "服务端apk地址.apk",
success(load) {
console.log('更新成功', load);
// 关闭loading
plus.nativeUI.closeWaiting();
plus.runtime.install(load
.tempFilePath, { force: false },
function() {
console.log("安装成功");
plus.runtime.restart();
},
function(e) {
plus.nativeUI.closeWaiting();
// 安装失败,请检查apk包是否解析正常
console.log("安装失败");
})
},
fail(err) {
plus.nativeUI.closeWaiting();
console.log("更新失败", err);
},
});
downloadTask.onProgressUpdate((res) => {
showLoading.setTitle(" 正在下载" + res.progress +
"% ");
// console.log('下载进度' + res.progress);
// console.log('已经下载的数据长度' + res.totalBytesWritten);
// console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
// 满足测试条件,取消下载任务。
// if (res.progress > 50) {
// downloadTask.abort();
// plus.nativeUI.closeWaiting();
// }
})
} else {
console.log("用户取消更新");
}
}
})
} else {
console.log("无需更新");
}
})
})
// #endif
},