一、需求说明
目前出现情况:每次发布新版本,如果用户正在使用小程序,都需要让用户将小程序销毁再重新启动,才能使用最新版本的代码
希望当小程序版本更新后,用户打开小程序时自动检查是否有新版本,若有,则提示用户是否更新
二、需求实现
2.1 冷启动和热启动
用户打开小程序时有两种启动方式:
冷启动:若用户首次打开,或小程序销毁后被再次打开,此时需要重新加载,会检查当前最新版本的代码,并运行。
热启动:如果用户已经打开过小程序,且在一定时间内再次打开,此时小程序并未被销毁,并不会检查最新代码。
2.2 热启动时实现版本更新
使用微信官方提供的 api 来检查并更新版本:
一般会将代码写在 app.js 的 onLaunch 函数中,在打开小程序时就执行
App({
onLaunch() {
// 判断是否能用这个 api
if (wx.canIUse("getUpdateManager")) {
// 创建 updateManager 实例
const updateManager = wx.getUpdateManager();
// 检查是否有新版本
updateManager.onCheckForUpdate(function (res) {
// hasUpdate 指是否有新版本,为 boolean 值
if (res.hasUpdate) {
updateManager.onUpdateReady(function () {
wx.showModal({
title: "更新提示",
content: "新版本已经准备好,是否重启应用?",
success: function (res) {
if (res.confirm) {
// 强制更新版本
updateManager.applyUpdate();
}
},
});
}),
updateManager.onUpdateFailed(function () {
wx.showModal({
title: "已经有新版本了",
content: "新版本已经上线啦~,请您删除当前小程序,重新搜索打开",
});
});
}
});
} else {
wx.showModal({
title: "提示",
content:
"当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。",
});
}
},
});
标签:自动更新,res,程序,updateManager,版本,打开,wx
From: https://www.cnblogs.com/wp-leonard/p/17130428.html