原生小程序
在app.js中写如下代码
onLaunch() {
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
console.log('onCheckForUpdate====', res)
// 请求完新版本信息的回调
if (res.hasUpdate) {
console.log('res.hasUpdate====')
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success: function (res) {
console.log('success====', res)
// res: {errMsg: "showModal: ok", cancel: false, confirm: true}
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(function () {
// 新的版本下载失败
wx.showModal({
title: '已经有新版本了哟~',
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~'
})
})
}
})
}
}
uniapp方式
在App.vue里面
onShow: function() {
console.log('App Show')
// 版本更新
if(uni.canIUse('getUpdateManager')) {
// 判断当前微信版本是够支持版本更新
const updateManager = uni.getUpdateManager()
updateManager.onCheckForUpdate(function(res){
if(res.hasUpdate) {
// 请求完新版本信息的回调
updateManager.onUpdateReady(function(){
uni.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success(res) {
if(res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(function() {
uni.showModal({
// 新版本下载失败
title: '已经有新版本了~',
content: '新版本已经上线了,请您删除当前小程序,重新搜索打开体验新版本'
})
})
}
})
}
},