126 lines
5.0 KiB
JavaScript
126 lines
5.0 KiB
JavaScript
|
import {getVersion} from "../api";
|
||
|
|
||
|
const updateVersion = {
|
||
|
data() {
|
||
|
return {
|
||
|
updateVersion: {
|
||
|
modalShow: false,
|
||
|
showConfirmButton: false,
|
||
|
showCancelButton: false,
|
||
|
confirmText: '',
|
||
|
cancelText: '',
|
||
|
modalContent: '',
|
||
|
confirmType: '',
|
||
|
newVersionUrl: '',
|
||
|
downloadCompleteTemporaryPath: '',
|
||
|
},
|
||
|
platform:'',
|
||
|
version:''
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
async fnUpdateVersion(toast) {
|
||
|
var _this = this;
|
||
|
uni.getSystemInfo({
|
||
|
success: (res) => {
|
||
|
console.info('55')
|
||
|
console.info(res.platform)
|
||
|
_this.platform = res.platform
|
||
|
}
|
||
|
});
|
||
|
plus.runtime.getProperty(plus.runtime.appid, function (inf) {
|
||
|
_this.version = inf.version; //获取当前版本号
|
||
|
});
|
||
|
console.info('2')
|
||
|
await _this.getUrlVarsion(toast)
|
||
|
},
|
||
|
async getUrlVarsion(toast){
|
||
|
// #ifdef APP-PLUS
|
||
|
let resData = await getVersion()
|
||
|
if(this.version < resData.pd.VERSION){
|
||
|
if (this.platform=="android") {
|
||
|
this.updateVersion.newVersionUrl = this.$store.state.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 {
|
||
|
plus.nativeUI.confirm( "请保持应用最新版本,否则将无法使用。", function(e){
|
||
|
if(e.index == 0){
|
||
|
var url='itms-apps://itunes.apple.com/cn/app/id6448770162?mt=8';// 应用在appstore的地址
|
||
|
plus.runtime.openURL(url);
|
||
|
setTimeout(function() {
|
||
|
const threadClass = plus.ios.importClass("NSThread");
|
||
|
const mainThread = plus.ios.invoke(threadClass, "mainThread");
|
||
|
plus.ios.invoke(mainThread, "exit");
|
||
|
}, 2000);
|
||
|
}
|
||
|
}, "下载更新", ["下载"] );
|
||
|
}
|
||
|
|
||
|
}
|
||
|
// #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
|