小程序版本更新问题,希望小程序能马上更新版本
最近在做小程序更新的问题:
发现照官方文档:
https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/update-mechanism.html
及里面的源代码去操作,仍然满足不了我们的需求。
文档里说:
需要24小时内,而且需要冷启动。
因此,对于现在我们还没有做后端的版本管理
就会出现,小程序已经审核了,我们也更新了后端的代码了,但仍然小程序用的是老版本的代码。
仍然会出错。
我做过如下偿试:
老用户(非第一次打开小程序),
1.点胶囊关闭小程序,再打开,==未能更新
2.重新进入小程序==未能更新
3.重新扫码小程序==未能更新
只有等到小程序销毁,或者说删除小程序。
因此,我只能直接在进入首页时,提示用户进行更新。
app.js的代码如下:
onUpdateVersion() {
// wx.getUpdateManager 在 1.9.90 才可用,请注意兼容
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
console.log(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: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
showCancel:false })
// 新的版本下载失败
})
调用页代码如下:
如此,就可以在页面onload时,也可以执行更新。
不过,也许可以考虑在onshow时,因为onload的话,也是在首页加载页面时。
打开过,后面就不会再执行onload事件了,除非用relauch进入页面。