一、小程序的更新机制
直接参考小程序文档
二、开发者手动触发更新
仅是使用微信提供的接口,检查版本更新
1.1. 从基础库 1.9.90 开始,可以使用wx.getUpdateManager
1.2. 小程序的冷启动和热启动
1.2.1. 冷启动:关闭小程序(杀死小程序进程),进入小程序
冷启动一定会触发,需要将手动触发更新的代码放到app文件中,onLaunch,onShow的生命周期中。
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
console.log(res.hasUpdate)
})
1.2.2. 热启动:小程序从后台切到前台
测试结果:
要想触发,需要将手动触发更新代码放到onShow的生命周期中。
onShow可以获取到页面路径,可以在部分页面的时候执行更新。
同时使用后端服务器接口配合,在运行时,检查更新
1.1. 小程序运行时,检查小程序更新
通过后端服务器接口,检查小程序更新,然后提示用户,通过重启小程序,触发小程序更新。
1.2. 处理小程序本身提供的检测更新和接口检查更新的冲突
设置一个标识,当小程序从后台切到前台时,只允许触发小程序本身提供的检查更新。
三、注意
1. 关于小程序更新会不会清除本地缓存的问题
根据文档中描述的清理策略,不会清除,小程序更新时候只是更新代码包,不是清除代码包。
但是,社区里面出现一些说,小程序更新会清除本地缓存的情况。
2. 发布时需要注意
第一次发布带有小程序检测版本更新不会生效,再次发布小程序版本才会生效。
3. 开发时需要注意
- 微信开发者工具上可以通过「编译模式」下的「下次编译模拟更新」开关来调试。
- 小程序开发版/体验版没有「版本」概念,所以无法在开发版/体验版上测试更版本更新情况。
- 无法在体验版测试。
4. 版本更新的策略
如果用户此次使用过程中拒绝更新,应该在此次使用过程中不再检查更新,避免影响用户体验。