87 lines
3.9 KiB
JavaScript
87 lines
3.9 KiB
JavaScript
|
import Vue from 'vue'
|
|||
|
// 获取当前版本号
|
|||
|
function getLocalVersion() {
|
|||
|
return new Promise((resolve, reject) => {
|
|||
|
plus.runtime.getProperty(plus.runtime.appid, function (widgetInfo) {
|
|||
|
const version = widgetInfo.version
|
|||
|
resolve(version)
|
|||
|
})
|
|||
|
}).catch(err => {
|
|||
|
console.log(err);
|
|||
|
})
|
|||
|
}
|
|||
|
export function downloadPackage() {
|
|||
|
return new Promise((resolve, reject) => {
|
|||
|
// 相关接口
|
|||
|
let token = uni.getStorageSync('loginObj')
|
|||
|
let version
|
|||
|
const reqDTO = {
|
|||
|
obligateData1: 'pad'
|
|||
|
}
|
|||
|
uni.request({
|
|||
|
url: `${Vue.prototype.$local}/api/version/getMsg`,
|
|||
|
header: {
|
|||
|
'Content-Type': 'application/json', //自定义请求头信息
|
|||
|
'Authorization': `Bearer ${token.access_token}`
|
|||
|
},
|
|||
|
data: reqDTO,
|
|||
|
method: 'POST', //请求方式,必须为大写
|
|||
|
success: (res) => {
|
|||
|
if (res.statusCode == 200 && res.data.data != null) {
|
|||
|
getLocalVersion().then(resD => {
|
|||
|
if (res.data.data.versionNum != resD) {
|
|||
|
uni.showModal({
|
|||
|
title: '检测到有版本更新!',
|
|||
|
content: '请升级app到最新版本!',
|
|||
|
cancelText: '暂不升级',
|
|||
|
showCancel: false,
|
|||
|
confirmText: '立即升级',
|
|||
|
success: resDD => {
|
|||
|
if (resDD.confirm) {
|
|||
|
const task = plus.downloader.createDownload(res.data.data.url);
|
|||
|
task.addEventListener('statechanged', (download, status) => {
|
|||
|
console.log(download,status);
|
|||
|
if (status == 200) {
|
|||
|
const {
|
|||
|
downloadedSize,
|
|||
|
totalSize,
|
|||
|
filename,
|
|||
|
state,
|
|||
|
} = download;
|
|||
|
const p = (downloadedSize / totalSize).toFixed(2) * 100;
|
|||
|
const isComplete = state === 4;
|
|||
|
console.log(['下载中' + p, 'status=' + status, '是否下载完成' + (isComplete)].join(','))
|
|||
|
// onProgress && onProgress(p);
|
|||
|
if (isComplete) {
|
|||
|
console.log('下载完成,开始安装')
|
|||
|
plus.runtime.install(filename, {}, () => {
|
|||
|
console.log('安装成功')
|
|||
|
}, () => {
|
|||
|
console.log('安装失败')
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
}, false);
|
|||
|
task.start();
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
},
|
|||
|
fail: function (err) {
|
|||
|
uni.showModal({
|
|||
|
title: '提示',
|
|||
|
showCancel: false,
|
|||
|
content: '请求超时,请退出重新进入!'
|
|||
|
})
|
|||
|
}
|
|||
|
})
|
|||
|
resolve(version)
|
|||
|
}).catch(err => {
|
|||
|
console.log(err);
|
|||
|
})
|
|||
|
}
|
|||
|
|