因发布新版本小程序不能及时更新,会导致出现一些问题,所以想添加小程序强制更新功能,在app.js的onShow或者onLaunch调用wx.getUpdateManager ,开发工具上显示成功,但是线上版本不执行
onShow(){
this.autoUpdate()
},
//更新机制
autoUpdate: function() {
var self = this
// 获取小程序更新机制兼容
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function(res) {
if (res.hasUpdate) {
wx.showModal({
title: '更新提示',
content: '检测到新版本,是否下载新版本并重启小程序?',
success: function(res) {
if (res.confirm) {
self.downLoadAndUpdate(updateManager)
} else if (res.cancel) {
wx.showModal({
title: '温馨提示',
content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问',
showCancel:false,
confirmText:"确定更新",
success: function(res) {
if (res.confirm) {
//下载新版本,并重新应用
self.downLoadAndUpdate(updateManager)
}
}
})
}
}
})
}
})
} else {
wx.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。',
})
}
},
downLoadAndUpdate: function (updateManager){
var self=this
wx.showLoading();
updateManager.onUpdateReady(function () {
wx.hideLoading()
updateManager.applyUpdate()
})
updateManager.onUpdateFailed(function () {
wx.hideLoading()
// 新的版本下载失败
wx.showModal({
title: '已经有新版本了哟~',
content: '新版本已经上线,请您删除当前小程序,重新搜索打开',
})
})
},
在最新版本才带了这个检查的话,旧版本没有这个代码就不会触发提示,下次版本发布才会执行
1、线上版本的代码里,是否有这段代码?没有的话,等当前版本上线后,线上版本才拥有了强制更新能力。
2、测试线上版本时,需要冷启动,将小程序从后台删除,再重新打开小程序;