首先 我们在app打包的时候回去设置版本号,用来了解当前版本具体更新了哪些功能;所以在app更新的时候,首先去获取我们的版本号;
App.vue
onLaunch: function() {
console.info(plus.runtime.appid,'plus.runtime.appid')
plus.runtime.getProperty(plus.runtime.appid,(wgtinfo)=>{
console.info(wgtinfo,'获取版本号')
uni.setStorage({
key: 'wgtinfoVersionCode',
data: wgtinfo.version
})
})
}
获取版本号后并且保存在了本地存储中;
然后在项目的首页中进行版本号对比 看是否需要更新;
javascript
getupdata(){
let code =(uni.getStorageSync('wgtinfoVersionCode'));
let userinfor =uni.getStorageSync('USER_ENV');
let codearr = userinfor.appver.split(',');
let newcode = (codearr[0])
// return false;
if ( newcode != code) { // 如果最新版本大于现在已经安装的App的版本
uni.showModal({
title: "更新提示",
content: "发现新版本,请确认下载更新?",
success: (res) => {
if (res.confirm) {
// uni.showLoading({
// title: '更新中...'
// });
uni.downloadFile({
url: codearr[1],
success: (downloadResult) => {
// uni.hideLoading();
if (downloadResult.statusCode === 200) {
plus.runtime.install(downloadResult.tempFilePath, {
force: true
}, function() {
// console.log('App安装成功!');
// uni.showToast('App安装成功!', 'success');
plus.runtime.restart();
}, function(e) {
console.log('App安装失败!');
})
}
}
});
}
}
})
}
},
其中:
let userinfor =uni.getStorageSync('USER_ENV');
let codearr = userinfor.appver.split(',');
let newcode = (codearr[0])
这个数据是我项目中的用户基本信息 我是放在本地存储中的;里面有目前这个项目的版本号;通过之前的版本号(就是存在用户基本信息中的)和在App.vue中拿到的现在项目的版本号对比;去更新;