需求场景:
提示:微信小程序更新后的缓存问题:
小程序,更新版本发布后,用户的版本一般情况下仍是旧版本(24 小时之内覆盖绝大多数用户);需要手动删除小程序后,在重新搜索打开才能使用新版本。
解决方案:
代码
uni-app中
uniapp项目,将以下代码添加到 APP.vue 中:
const updateManager = uni.getUpdateManager();
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
console.log(res.hasUpdate);
});
updateManager.onUpdateReady(function (res) {
uni.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success(res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate();
}
}
});
});
updateManager.onUpdateFailed(function (res) {
// 新的版本下载失败
});
原生小程序:
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
console.log(res.hasUpdate)
})
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success(res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(function () {
// 新版本下载失败
})
本地调试
本地模拟调试:
注:初次添加更新的提示是无效的,需要下次发版才会有提示,所以更新提示的版本需要先上线,等到下次有新版本才会触发弹框提示。
参考文档:
1.小程序运行机制
2.小程序更新机制