小程序更新: uniapp小程序更新逻辑
uni.getUpdateManager()
方法 | 参数 | 说明 |
---|---|---|
onCheckForUpdate | callback | 当向小程序后台请求完新版本信息,会进行回调 |
onUpdateReady | callback | 当新版本下载完成,会进行回调 |
onUpdateFailed | callback | 当新版本下载失败,会进行回调 |
applyUpdate | 当新版本下载完成,调用该方法会强制当前小程序应用上新版本并重启 |
官方版本
js
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) {
// 新的版本下载失败
});
实际开发
js
//app.js
App({
onLaunch() {
this.update()
},
// 版本更新
update() {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
if(res.hasUpdate) {
// 新版本下载成功
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,请您重启应用,以确保正常使用。',
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
})
// 新版本下载失败
updateManager.onUpdateFailed(function () {
wx.showModal({
title: '更新提示',
content: '检测到了新版本,但是下载失败了~'
})
})
}
})
}
})