//检查是否存在新版本
uni.getUpdateManager().onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
console.log("是否有新版本:"+res.hasUpdate);
if(res.hasUpdate){//如果有新版本
// 小程序有新版本,会主动触发下载操作(无需开发者触发)
uni.getUpdateManager().onUpdateReady(function () {//当新版本下载完成,会进行回调
uni.showModal({
title: '更新提示',
content: '请点确定享用新功能',
showCancel:false,
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
uni.getUpdateManager().applyUpdate();
}
}
})
})
// 小程序有新版本,会主动触发下载操作(无需开发者触发)
uni.getUpdateManager().onUpdateFailed(function () {//当新版本下载失败,会进行回调
uni.showModal({
title: '提示',
content: '检查到有新版本,但下载失败,请检查网络设置',
showCancel: false,
})
})
}
});
文档是这样写的,分开监控:updateManager.onCheckForUpdate和updateManager.onUpdateReady分开。亲测没问题
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 () { // 新版本下载失败 })
在工具上模拟更新。
所有手机都不会弹出自动更新的提示框