需求描述
大家在使用微信小程序的时候,有没有见过上面这种自动弹窗出现:新版本已经准备好,是否重启应用? 点击确定后,会重启小程序,将打开最新的小程序版本。
解决方案
这个在微信小程序API文档中,有介绍如何使用UpdateManager对象,用来管理更新,示例代码。
只需要在项目入口文件加入下面代码即可:
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
console.log(res.hasUpdate)
})
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(function () {
// 新版本下载失败
})
- 如果开发的是微信小程序原生,那就需要在app.js文件中,加入以上代码。
- 如果开发的是uniapp,就需要在App.vue文件中加入,并且将上面的wx.前缀改成uni.这样同样就不仅限于适用微信小程序了,像抖音小程序等都适用。
版本更新的时机
- 如果第一次打开小程序,那打开的肯定是最新版本的小程序;
- 如果之前打开过小程序,再进入的时候有可能加载的是老版本,如果新版本的更新对老版本可以兼容,老版本不影响用户体验的情况下,不需要使用上面代码进行手动更新,因为用户退出小程序后,再次进入就会默认加载最新的版本了。
- 如果必须让用户进入小程序必须保证最新的版本,如果不使用新版本会出现问题的情况下,那么就必须使用上面的示例代码,让用户进入系统的时候检查版本是否是最新的,如果更新了版本,那么就需要手动重启获取最新的代码。