关于小程序的更新机制
小程序冷启动时如果发现有新版本,将会异步下载新版本的代码包,并同时用客户端本地的包进行启动,即新版本的小程序需要等下一次冷启动才会应用上。 如果需要马上应用最新版本,可以使用 wx.getUpdateManager 进行更新重启。
小程序发布后,若用户不是首次打开小程序,一般会出现不能立即更新到最新版本。
解决办法:就是使用版本更新管理器wx.getUpdateManager(),在每次进入小程序时执行一遍版本检测、更新的代码。
可以在 app.js 的 onLaunch() 方法中进行调用 checkUpdateVersion()
关于开发板如何调试:
微信开发者工具上可以通过「编译模式」下的「下次编译模拟更新」开关来调试
//app.js
App({
onLaunch() {
this.checkUpdateVersion()
},
// 版本更新
checkUpdateVersion() {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
if(res.hasUpdate) {
// 新版本下载成功
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,请您重启应用,以确保正常使用。',
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
})
// 新版本下载失败
updateManager.onUpdateFailed(function () {
wx.showModal({
title: '更新提示',
content: '请您删除当前小程序,到微信 “发现-小程序” 页,重新搜索打开呦~'
})
})
}
})
}
})