微信小程序版本更新

858 阅读2分钟

一、小程序的更新机制

直接参考小程序文档

小程序更新机制 | 微信开放文档

二、开发者手动触发更新

仅是使用微信提供的接口,检查版本更新

UpdateManager | 微信开放文档

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. 开发时需要注意

  1. 微信开发者工具上可以通过「编译模式」下的「下次编译模拟更新」开关来调试。
  2. 小程序开发版/体验版没有「版本」概念,所以无法在开发版/体验版上测试更版本更新情况。
  3. 无法在体验版测试。

4. 版本更新的策略

如果用户此次使用过程中拒绝更新,应该在此次使用过程中不再检查更新,避免影响用户体验。

5. 扩展,后端接口也存在两(多)个版本同时使用