微信小程序强制更新版本以及热启动和冷启动

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微信⼩程序强制更新版本以及热启动和冷启动
⼩程序先提交了⼀个版本,但是⽤的时候发现了⼀些问题需要及时的更新,这时候就要发布新版本。

如何让⽤户⾃⼰的⼩程序也更新到最新版本呢?
⼀、运⾏机制
⼩程序启动会有两种情况,⼀种是「冷启动」,⼀种是「热启动」。

假如⽤户已经打开过某⼩程序,然后在⼀定时间内(五分钟)再次打开该⼩程序,此时⽆需重新启动,只需将后台态的⼩程序切换到前台,这个过程就是热启动;
冷启动指的是⽤户⾸次打开或⼩程序被微信主动销毁后再次打开的情况,此时⼩程序需要重新加载启动。

⼩程序没有重启的概念
当⼩程序进⼊后台,客户端会维持⼀段时间的运⾏状态,超过⼀定时间后(⽬前是5分钟)会被微信主动销毁
当短时间内(5s)连续收到两次以上收到系统内存告警,会进⾏⼩程序的销毁
⼆、更新机制
⼩程序冷启动时如果发现有新版本,将会异步下载新版本的代码包,并同时⽤客户端本地的包进⾏启动,即新版本的⼩程序需要等下⼀次冷启动才会应⽤上。

如果需要马上应⽤最新版本,可以使⽤ API 进⾏处理。

三、更新API
wx.getUpdateManager()使⽤该接⼝,可以获知是否有新版本⼩程序、新版本是否下载好以及应⽤新版本的能⼒。

// 获取⼩程序更新机制兼容
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
if (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: '新版本已经上线啦~,请您删除当前⼩程序,重新搜索打开哟~',
})
})
}
})
} else {
// 如果希望⽤户在最新版本的客户端上体验您的⼩程序,可以这样⼦提⽰
wx.showModal({
title: '提⽰',
content: '当前微信版本过低,⽆法使⽤该功能,请升级到最新微信版本后重试。

'
})
}
不知道把这段代码放在哪⾥,写这段代码时查了好多资料,最后放在了app.js的onLaunch⽅法⾥了
发布的第⼀版不会⽣效,下⼀版才会⽣效的。

相关文档
最新文档