使用getUpdateManager小程序版本更新后,自动检查手动重启更新版本

174 阅读2分钟

在这里插入图片描述

需求描述

大家在使用微信小程序的时候,有没有见过上面这种自动弹窗出现:新版本已经准备好,是否重启应用? 点击确定后,会重启小程序,将打开最新的小程序版本。

解决方案

这个在微信小程序API文档中,有介绍如何使用UpdateManager对象,用来管理更新,示例代码

只需要在项目入口文件加入下面代码即可:

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 () {
  // 新版本下载失败
})
  • 如果开发的是微信小程序原生,那就需要在app.js文件中,加入以上代码。
  • 如果开发的是uniapp,就需要在App.vue文件中加入,并且将上面的wx.前缀改成uni.这样同样就不仅限于适用微信小程序了,像抖音小程序等都适用。

版本更新的时机

  1. 如果第一次打开小程序,那打开的肯定是最新版本的小程序;
  2. 如果之前打开过小程序,再进入的时候有可能加载的是老版本,如果新版本的更新对老版本可以兼容,老版本不影响用户体验的情况下,不需要使用上面代码进行手动更新,因为用户退出小程序后,再次进入就会默认加载最新的版本了。
  3. 如果必须让用户进入小程序必须保证最新的版本,如果不使用新版本会出现问题的情况下,那么就必须使用上面的示例代码,让用户进入系统的时候检查版本是否是最新的,如果更新了版本,那么就需要手动重启获取最新的代码。