小程序强制更新
在启动时异步更新的情况下,如果开发者希望立刻进行版本更新,可以使用 wx.getUpdateManagerAPI 进行处理,该API会返回一个UpdateManager实例
UpdateManager 对象为小程序提供了四种关键的方法,用于管理和监控小程序的更新过程。
UpdateManager.applyUpdate():在小程序新版本已经下载完成的情况下(即接收到 onUpdateReady 回调后),此方法用于强制小程序重启并启用新版本。
UpdateManager.onCheckForUpdate(function callback):此方法用于监听向微信后台发起的更新检查结果事件。微信小程序在冷启动时会自动进行更新检查,开发者无需主动触发。
UpdateManager.onUpdateReady(function callback):此方法用于监听小程序的新版本更新就绪事件。一旦新版本可用,客户端会自动触发下载过程(无需开发者额外操作),并在下载成功后调用此回调函数。
UpdateManager.onUpdateFailed(function callback):此方法用于监听小程序更新失败的事件。当小程序有新版本且客户端尝试自动下载更新时(同样无需开发者干预),如果因网络问题或其他原因导致下载失败,将会触发此回调函数。
根据以上API,我们就能够在小程序法版后,通知用户进行强制更新
if (taro.canIUse('getUpdateManager')) {
const updateManager = taro.getUpdateManager();
updateManager.onCheckForUpdate(function (res) {
console.log('onCheckForUpdate====', res);
if (res.hasUpdate) {
// 小程序已更新
updateManager.onUpdateReady(function () {
taro.showModal({
title: '更新提示',
showCancel: false,
confirmText: '立即重启',
content: '新版本已经上线,是否重启小程序以应用新版本?',
success: function (res) {
if (res.confirm) {
// 调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate();
}
}
});
});
// 更新失败
updateManager.onUpdateFailed(function () {
taro.showModal({
title: '更新失败',
content: '新版本下载失败,请删除当前小程序后重新打开。',
});
});
}
});
} else {
// 版本过低
taro.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。',
});
}