小程序发布正式版之后检测新版本并自动下载更新
首先陈述一下背景:最近uniapp做小程序,经常遇到问题,测试反馈bug,但是有些bug只能在正式服才能看到,所以就需要改问题一定要发布正式版才能测。
1,例如:公众号推送消息,从模板消息跳转小程序,体验版是不能进行跳转的,因为需要公众号和小程序绑定,都得是正式版才可以相互跳转。但是有时候发布之后,每次都要移除小程序,重新搜索进来,真实环境,当我们修改问题,发布,不可能让用户每次都删除重进吧,不太贴心,略显繁琐。
2,发布之后尽管重新移除小程序,也不确定,当前是否是最新的小程序。加版本号是一个方案。
3,也便于撕逼。真实环境可能会有很多意想不到的问题,平时测试无法测出的,但是又不确定是不是前端问题,所以加个版本号比较好,同时再使用下面的API,确保前端版本更新,便于确定问题方向。
解决以上问题需要用到小程序的API,他还是提供了一个检测新版本并且自动下载的API。
实际代码,我使用uniapp开发的,所以放到了App.vue的onShow里面。
onShow: function (data) {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
console.log('请求完新版本信息的回调',res.hasUpdate)
})
updateManager.onUpdateReady(function () {
console.log('请求完新版本')
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(function () {
// 新版本下载失败
wx.showModal({
title: '更新失败',
content: '请退出并移除小程序,重新打开',
// success: function (res) {
// if (res.confirm) {
// }
// }
})
})
console.log('App Show');
},