最近开发小程序时候碰上了一个问题,当发布新版本小程序后,需要用户能赶紧用上最新的,避免出问题。查了一下官方文档,总结出几个情况如下:
(黄花菜都凉了)
(对于使用频率高的小程序没P用)
(本次不生效,下次冷启动才生效)
这里科普一下什么是冷启动和热启动
通过查询文档和网上冲浪,最终解决方案是在app.js的onShow生命周期里检查是否有新版本,如果有的话,就异步下载,下载完毕弹窗提示用户更新,代码如下:
const updateManager = uni.getUpdateManager()
onShow() {
// 请求完新版本信息的回调
updateManager.onCheckForUpdate(res => {
if (res.hasUpdate) {
// 新版本下载成功
updateManager.onUpdateReady(() => {
uni.showModal({
title: '更新提示',
content: '新版本已经准备好,点击确定重启小程序',
success(res) {
if (res.confirm) {
// 新的版本已经下载好,强制更新
updateManager.applyUpdate()
}
}
})
})
}
})
// 新版本下载失败
updateManager.onUpdateFailed(res => {
console.error(res)
})
}
版本
概念,所以无法在开发版/体验版上测试更版本更新情况编译模式
中勾选下次编译模拟更新
开关来调试如果看了觉得有帮助的,我是@上进的鹏多多,欢迎 点赞 关注 评论;
往期文章
个人主页