微信小程序强制更新

启动时更新

  • 热启动:假如用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,只需将后台态的小程序切换到前台,这个过程就是热启动;
  • 冷启动:用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动,即冷启动。 小程序没有重启的概念。

小程序每次冷启动时,都会检查是否有更新版本,如果发现有新版本,将会异步下载新版本的代码包,并同时用客户端本地的包进行启动,即新版本的小程序需要等下一次冷启动才会应用上。

注意: 发布版本的时候版本号也记得更新,可能导致有更新提示不生效

微信开发者工具中设置编译模式启动触发

  • 下次编译时模拟更新

示例代码

// 检查是否版本更新,在app.js里的onLaunch中调用即可
checkUpdate() {
const updateManager = wx.getUpdateManager();
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
console.log("是否有新版本:" + res.hasUpdate);
if (res.hasUpdate) {
// 小程序有新版本,会主动触发下载操作(无需开发者触发)
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
wx.getUpdateManager().applyUpdate()
}
}
})
});

// 小程序有新版本,会主动触发下载操作(无需开发者触发)
updateManager.onUpdateFailed(function () {
// 新版本下载失败
wx.showModal({
title: '提示',
content: '检查到有新版本,但下载失败,请检查网络设置',
showCancel: false,
})
});
}
});
},