uniapp⼩程序新版本发布提⽰⽤户更新
⼩程序发布新版本因为发版本是异步执⾏,所以要再⼀段时间后新版本才会覆盖旧版本。
⼩程序的启动⽅式分为两种,冷启动与热启动:
冷启动:⽤户⾸次打开或⼩程序被⽤户删除后再次打开时⼩程序需要重新加载启动。
热启动:⽤户已经打开过某⼩程序,然后在⼀定时间内再次打开该⼩程序,不会重新加载启动,只是将后台状态的⼩程序切换到前台状态。
uniapp提供了版本更新管理器对象的API:
平台差异说明
App H5⼩程序⽀付宝⼩程序百度⼩程序字节跳动⼩程序、飞书⼩程序QQ⼩程序快⼿⼩程序
x x√√√√√√
官⽅案例代码:
const updateManager = UpdateManager();
// 请求完新版本信息的回调
console.log(res.hasUpdate);
});
uni.showModal({
title: '更新提⽰',
content: '新版本已经准备好,是否重启应⽤?',
success(res) {
if (firm) {
// 新的版本已经下载好,调⽤ applyUpdate 应⽤新版本并重启
updateManager.applyUpdate();
}
}
});
});
// 新的版本下载失败
});
updateManager 对象的⽅法列表:
⽅法参数说明
onCheckForUpdate callback当向⼩程序后台请求完新版本信息,会进⾏回调
onUpdateReady callback当新版本下载完成,会进⾏回调
onUpdateFailed callback当新版本下载失败,会进⾏回调
applyUpdate当新版本下载完成,调⽤该⽅法会强制当前⼩程序应⽤上新版本并重启
onCheckForUpdate(callback) 回调结果说明:
属性类型说明
hasUpdate Boolean是否有新的版本
把官⽅代码调整后放在 App.vue⽂件的onLaunch事件⾥
onLaunch(){
//定义更新⽅法
function VersionUpdate() {
// 判断应⽤的 getUpdateManager 是否在当前版本可⽤
if (uni.canIUse('getUpdateManager')) {
const updateManager = UpdateManager()
// 向⼩程序后台请求完新版本信息
if (res.hasUpdate) {
//⼩程序有新版本,静默下载新版本,新版本下载完成
//模态弹窗(确认、取消)
uni.showModal({
title: '更新提⽰',
content: '⼩程序已发布新版本,是否重启?',
success: function(res) {
//⽤户点击确定
if (firm) {
//当新版本下载完成,调⽤该⽅法会强制当前⼩程序应⽤上新版本并重启
updateManager.applyUpdate()
}
//⽤户点击取消
else if (res.cancel) {
//强制⽤户更新,弹出第⼆次弹窗
uni.showModal({
title: '提⽰',
content: '⼩程序已发布新版本,是否重启',
showCancel: false, //隐藏取消按钮
success: function(res) {
//第⼆次提⽰后,强制更新
if (firm) {
// 当新版本下载完成,调⽤该⽅法会强制当前⼩程序应⽤上新版本并重启
updateManager.applyUpdate()
}
}
})
}
}
})
})
// 当新版本下载失败
uni.showModal({
title: '提⽰',
content: '请您删除当前⼩程序,重新打开⼩程序',
})
})
}
})
} else {
// 提⽰⽤户在最新版本的客户端上体验
uni.showModal({
title: '温馨提⽰',
content: '当前版本过低,可能⽆法使⽤该功能,请升级到最新版本后重试。'
})
}
}
//调⽤定义的更新⽅法
如何制作app小程序VersionUpdate();
},
测试版本更新效果:
开发者⼯具 —— 选择添加编译模式 —— 编译设置 —— 下次编译时模拟更新 —— 更新状态
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论