版本更新代码如下
// 版本更新提示
update(){
if (uni.canIUse('getUpdateManager')) {
const updateManager = uni.getUpdateManager();
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
if(res.hasUpdate){
updateManager.onUpdateReady(function (res) {
uni.showModal({
title: '更新提示',
content: '新版本已经准备好,为了获得更好的体验,建议立即更新'
success(res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate();
}
}
});
});
updateManager.onUpdateFailed(function () {
// 新的版本下载失败
uni.showModal({
title: '已经有新版本了哟~',
content: '新版本更新失败,为了获得更好的体验,请您前往发现--小程序中删除当前小程序,重新搜索打开哟~'
})
})
}
});
} else {
// can't use getUpdateManager
uni.showModal({
title: '提示',
content: '当前微信版本过低,无法使用新功能,请升级到最新微信版本后重试。'
})
}
}
版本跟新代码应该写在那个钩子函数里面?
1. 写在onLaunch里面
https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/update-mechanism.html
由于小程序具有缓存机制, 即使退出小程序,在一定时间内进入小程序,走热处理(即不进入onLaunch),只有当缓存过大, 或者发布24小时内未进入小程序, 进入小程序将会进行冷启动(全局调用一次onLaunch),这时就会更新版本, 但是对于一直用的老用户来说,可能不能立马就能更新
2. 写在onShow里面
每次进入小程序,都会调用onShow. 由于要求提交版本后要老用户也要立刻看到更新状态, 将版本更新提示写入onShow也可以实现版本更新提示
版本更新提示只有线上版本才有, 体验版本无法看到, 可以通过微信开发者工具测试:
https://blog.csdn.net/weixin_44852765/article/details/113114519