评论

小程序版本更新后,用户看到的还是旧版

针对部分同学包括我自己开发小程序时,会遇到小程序版本更新后,用户看到的还是旧版的这种情况,微信小程序文档里面已经说得很清楚了,但好多同学没有看,然后直接就在社区里面提问了,这里我专门分享一下。

直接上代码吧

在app.js的onLaunch里面写上这段代码


onLaunch: function() {

  if (wx.canIUse('getUpdateManager')) {
    const updateManager = wx.getUpdateManager()
    updateManager.onCheckForUpdate(function (res) {
      console.log('onCheckForUpdate====', res)
      // 请求完新版本信息的回调
      if (res.hasUpdate) {
        console.log('res.hasUpdate====')
        updateManager.onUpdateReady(function () {
          wx.showModal({
            title: '更新提示',
            content: '新版本已经准备好,是否重启应用?',
            success: function (res) {
              console.log('success====', res)
              // res: {errMsg: "showModal: ok", cancel: false, confirm: true}
              if (res.confirm) {
                // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                updateManager.applyUpdate()
              }
            }
          })
        })
        updateManager.onUpdateFailed(function () {
          // 新的版本下载失败
          wx.showModal({
            title: '已经有新版本了哟~',
            content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~'
          })
        })
      }
    })
  }

},

大家可以看下文档里面说的小程序更新机制:
小程序冷启动时,如果发现有新版本,将会异步下载新版本的代码包,并同时用客户端本地的包进行启动,即新版本的小程序需要等下一次冷启动才会应用上。
如果需要马上应用最新版本,可以使用 wx.getUpdateManager API 进行处理。

最后一次编辑于  08-25  
点赞 3
收藏
评论

1 个评论

  • 戏言
    戏言
    10-11

    会不会有写了这一段,也有提示更新,最后也点了确定,也走了updateManager.applyUpdate()

    但是更新之后还是以前的老版本啊

    10-11
    赞同
    回复 2
    • L°
      10-11
      这个是根据你提交时的版本号来判断的
      10-11
      回复
    • 阳
      10-12
      我的也没有更新,我的版本都1.1.3了,但是从管理后台看还有1.1.0的
      10-12
      回复