一功能方法的形式
/**
* checkVersion 是后端检测是否的接口
* isShow 为Boolean值 false:在首页自动调用 true:通过检测按钮触发调用
*/
const util = {}
util.checkVersionToLoadUpdate = function(plus, isShow) {
const version = store.state.app.appInfo.versionCode;
checkVersion(version).then(response => {
const {
code,
data,
msg
} = response;
if (code === 200) {
uni.showModal({
title: '版本更新',
content: '已有最新版本,是否更新?',
confirmText: '立即更新',
cancelText: '稍后更新',
success: function (res) {
if (res.confirm) {
plus.nativeUI.toast("正在准备环境,请稍后!");
const dtask = plus.downloader.createDownload(data.url, {filename:"_doc/update/"}, function(d, status) {
if (status == 200) {
plus.runtime.install(d.filename);
} else {
plus.nativeUI.alert('版本更新失败:' + status);
}
});
try {
dtask.start();
let prg = 0;
let showLoading = plus.nativeUI.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: '更新失败',
mask: false,
duration: 1500
});
}
} else if (res.cancel) {
console.log('稍后更新');
}
}
})
} else {
if (isShow) {
uni.showToast({
duration: 3000,
mask: true,
icon: 'none',
title: msg
});
}
}
}).catch(err => {
console.log(err);
});
}