最近搞微信小程序,发现发布新版本后,微信小程序在低版本微信上面并没有同步过去,只有高版微信重新进入小程序界面会进行更新,低版本需要删除小程序,重新搜索进入才可以,非常的麻烦,带给用户的体验也非常的不好.再此给一个解决方案.
我们可以在首页onshow中进行判断,监听当前微信小程序是否为最新版本,如果不是的话就下载最新版本,然后通知用户更新,具体代码如下.
onShow() {
this.listenForUpdates();//监听更新
},
methods:{
//监听小程序是否有新版本需要更新
listenForUpdates(){
const updateManager = uni.getUpdateManager();
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
console.log(res.hasUpdate,'新版本回调');
if(res.hasUpdate == true){
updateManager.onUpdateReady(function (res) {
uni.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success(res) {
console.log(res,'新版本下载完')
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate();
}
}
});
});
updateManager.onUpdateFailed(function (res) {
// 新的版本下载失败
uni.showModal({
title:'更新失败',
content: '很抱歉未能更新成功。您可以尝试重新进入,或者在微信界面下拉,在最近使用中找到此小程序,长按将其拖拽到底部删除按钮中,然后重新搜索小程序进入。给您带来的不便,深表歉意!',
showCancel:false,
});
});
}
});
},
}
温馨提示:
1.只有在低版本微信中才可以看到效果.
2.建议在正式版小程序中进行 测试
3.此代码不试用APP 仅适用uniapp 开发的小程序