收藏
回答

wx.getUpdateManager 线上版本不执行?

因发布新版本小程序不能及时更新,会导致出现一些问题,所以想添加小程序强制更新功能,在app.js的onShow或者onLaunch调用wx.getUpdateManager ,开发工具上显示成功,但是线上版本不执行

onShow(){

    this.autoUpdate()

  },

  //更新机制

  autoUpdate: function() {

    var self = this

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

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

      const updateManager = wx.getUpdateManager()

      updateManager.onCheckForUpdate(function(res) {

        if (res.hasUpdate{

          wx.showModal({

            title: '更新提示',

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

            success: function(res) {

              if (res.confirm{

                self.downLoadAndUpdate(updateManager)

              } else if (res.cancel{

                wx.showModal({

                  title: '温馨提示',

                  content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问',

                  showCancel:false,

                  confirmText:"确定更新",

                  success: function(res) {

                    if (res.confirm{

                      //下载新版本,并重新应用

                      self.downLoadAndUpdate(updateManager)

                    }

                  }

                })

              }

            }

          })

        }

      })

    } else {

      wx.showModal({

        title: '提示',

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

      })

    }

  },

  

  downLoadAndUpdate: function (updateManager){

    var self=this

    wx.showLoading();

     updateManager.onUpdateReady(function () {

      wx.hideLoading()

      updateManager.applyUpdate()

    })

    updateManager.onUpdateFailed(function () {

      wx.hideLoading()

      // 新的版本下载失败

      wx.showModal({

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

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

      })

    })

  },


最后一次编辑于  2022-04-14
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    2022-04-14

    在最新版本才带了这个检查的话,旧版本没有这个代码就不会触发提示,下次版本发布才会执行

    2022-04-14
    有用 1
    回复 3
    • 宫商角徵羽
      宫商角徵羽
      2023-02-07
      已经有新版本了,小程序正在运行的时候我主动触发onCheckForUpdate这个会返回true吗,还是说必须冷启动的时候onCheckForUpdate才会生效
      2023-02-07
      回复
    • 🐳sweetie
      🐳sweetie
      2023-12-26
      我5.0.0版本有这个代码检查,然后这两天发布了5.0.1版本,现在在我进入5.0.0版本还是不会检测到更新。这个问题怎么解
      2023-12-26
      回复
    • 社区技术运营专员-Jahozheng
      社区技术运营专员-Jahozheng
      2023-12-26回复🐳sweetie
      你小程序进入onlaunch了吗
      2023-12-26
      回复
  • 老张
    老张
    2022-04-14

    1、线上版本的代码里,是否有这段代码?没有的话,等当前版本上线后,线上版本才拥有了强制更新能力。

    2、测试线上版本时,需要冷启动,将小程序从后台删除,再重新打开小程序;

    2022-04-14
    有用
    回复
登录 后发表内容