111 lines
4.5 KiB
JavaScript
111 lines
4.5 KiB
JavaScript
import {getVersion} from "../api";
|
|
|
|
const updateVersion = {
|
|
data() {
|
|
return {
|
|
updateVersion: {
|
|
modalShow: false,
|
|
showConfirmButton: false,
|
|
showCancelButton: false,
|
|
confirmText: '',
|
|
cancelText: '',
|
|
modalContent: '',
|
|
confirmType: '',
|
|
newVersionUrl: '',
|
|
downloadCompleteTemporaryPath: '',
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
async fnUpdateVersion(toast) {
|
|
// #ifdef APP-PLUS
|
|
let resData = await getVersion()
|
|
if (resData.pd) {
|
|
if (plus.runtime.version != resData.pd.VERSION) {
|
|
this.updateVersion.newVersionUrl = this.$filePath + resData.pd.FILEURL
|
|
uni.getNetworkType({
|
|
success: ({
|
|
networkType
|
|
}) => {
|
|
if (networkType === 'wifi') {
|
|
this.updateVersion.modalContent = '发现新版本,是否更新?为了更好的体验,请更新到最新版本。'
|
|
} else {
|
|
this.updateVersion.modalContent =
|
|
'发现新版本,检查到您当前使用的是移动网络,是否更新?更新时请注意流量消耗。为了更好的体验,请更新到最新版本。'
|
|
}
|
|
this.updateVersion.confirmType = 'download'
|
|
this.updateVersion.confirmText = '立即更新'
|
|
this.updateVersion.cancelText = '稍后更新'
|
|
this.updateVersion.showConfirmButton = true;
|
|
this.updateVersion.showCancelButton = true;
|
|
this.updateVersion.modalShow = true;
|
|
uni.hideTabBar({
|
|
animation: true
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
if(toast !== false){
|
|
uni.showToast({
|
|
title: '当前已是最新版本,当前版本号:' + plus.runtime.version,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
}
|
|
} else {
|
|
if(toast !== false){
|
|
uni.showToast({
|
|
title: '当前已是最新版本,当前版本号:' + plus.runtime.version,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
}
|
|
|
|
// #endif
|
|
},
|
|
modalConfirm() {
|
|
this.updateVersion.confirmType === 'download' ? this.downloadNewVersion() : this.installNewVersion()
|
|
},
|
|
modalCancel() {
|
|
this.updateVersion.modalShow = false
|
|
uni.showTabBar({
|
|
animation: true
|
|
})
|
|
},
|
|
downloadNewVersion() {
|
|
this.updateVersion.showConfirmButton = false;
|
|
this.updateVersion.showCancelButton = false;
|
|
this.updateVersion.modalContent = '正在下载新版本,请稍后...'
|
|
const downloadTask = uni.downloadFile({
|
|
url: this.updateVersion.newVersionUrl,
|
|
success: (res) => {
|
|
this.updateVersion.downloadCompleteTemporaryPath = res.tempFilePath
|
|
}
|
|
});
|
|
downloadTask.onProgressUpdate((res) => {
|
|
this.updateVersion.modalContent = `正在下载新版本,请稍后...<br>已经下载${res.progress}%`
|
|
if (res.progress === 100) {
|
|
this.updateVersion.showConfirmButton = true;
|
|
this.updateVersion.confirmType = 'install'
|
|
this.updateVersion.confirmText = '立即安装'
|
|
this.updateVersion.modalContent = '下载成功,点击立即安装进行安装。'
|
|
}
|
|
});
|
|
},
|
|
installNewVersion() {
|
|
plus.runtime.install(
|
|
this.updateVersion.downloadCompleteTemporaryPath, {
|
|
force: true
|
|
},
|
|
function (res) {
|
|
uni.showTabBar({
|
|
animation: true
|
|
})
|
|
plus.runtime.restart();
|
|
}
|
|
);
|
|
},
|
|
}
|
|
}
|
|
export default updateVersion
|