收藏
回答

小程序更新机制?

autoUpdate() {

    if (wx.canIUse('getUpdateManager')) {

      console.log('更新更新更新更新更新更新更新1111~')

      const updateManager = wx.getUpdateManager()

      updateManager.onCheckForUpdate(function (res) {

        // 请求完新版本信息的回调

        console.log(res.hasUpdate, 'res.hasUpdate')

      })

      updateManager.onUpdateReady(function () {

        console.log('更新更新更新更新更新更新更新2222~')

        wx.showModal({

          title: '更新提示',

          showCancel: false,

          content: '检测到新版本,需要下载新版本并重启小程序哦~',

          success: function (res) {

            if (res.confirm) {

              // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启

              updateManager.applyUpdate()

            }

          }

        })

      })

      updateManager.onUpdateFailed(function () {

        // 新版本下载失败

        wx.showModal({

          title: '已经有新版本了哟~',

          content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',

          success: function (res) {

            wx.hideLoading()

          }

        })


      })

    } else {

      wx.showModal({

        title: '提示',

        content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'

      })

    }


  },


回答关注问题邀请回答
收藏

3 个回答

  • 拾忆
    拾忆
    03-11

    这段代码只有用户访问的版本里部署过的才会执行,你发布的首次版本并不会触发强制更新。

    03-11
    有用
    回复 2
    • 我是一颗小黑8
      我是一颗小黑8
      03-11
      我之前一直是通过检测是否有更新hasUpdate来判断要不要更新。发版过好几次了。我从来没弹出来过。
      03-11
      回复
    • 我是一颗小黑8
      我是一颗小黑8
      03-11回复我是一颗小黑8
      我今天试的是改了一点点代码然后版本号从x.x.1变成x.x.2。发版之后立马进入小程序。看了下打印结果还是前一个版本的代码。并没有立马更新
      03-11
      回复
  • 我是一颗小黑8
    我是一颗小黑8
    03-11

    autoUpdate: function () {

    let self = this

    // 获取小程序更新机制兼容

    console.log('app.autoUpdate')

    if (wx.canIUse('getUpdateManager')) {

    console.log('app.autoUpdategetUpdateManager')

    const updateManager = wx.getUpdateManager()

    //1. 检查小程序是否有新版本发布

    updateManager.onCheckForUpdate(function (res) {

    console.log('app.autoUpdategetUpdateManager2', res)

    // 请求完新版本信息的回调

    if (res.hasUpdate) {

    //检测到新版本,需要更新,给出提示

    wx.showModal({

    title: '更新提示',

    content: '检测到新版本,是否下载新版本并重启小程序?',

    showCancel: false,

    success: function (res) {

    if (res.confirm) {

    //2. 用户确定下载更新小程序,小程序下载及更新静默进行

    self.downLoadAndUpdate(updateManager)

    }

    }

    })

    }

    })

    } else {

    // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示

    wx.showModal({

    title: '提示',

    content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'

    })

    }

    },

    /**

    * 下载小程序新版本并重启应用

    */

    downLoadAndUpdate: function (updateManager) {

    wx.showLoading();

    //静默下载更新小程序新版本

    updateManager.onUpdateReady(function () {

    wx.hideLoading()

    //新的版本已经下载好,调用 applyUpdate 应用新版本并重启

    updateManager.applyUpdate()

    })

    updateManager.onUpdateFailed(function () {

    // 新的版本下载失败

    wx.showModal({

    title: '已经有新版本了哟~',

    content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',

    success: function (res) {

    wx.hideLoading()

    }

    })

    })

    }

    通过hasUpdate为true的时候更新写了也不弹出



    03-11
    有用
    回复
  • 智能回答 智能回答 该问答由AI生成
    03-11
    有用
登录 后发表内容