收藏
回答

updateManager.onCheckForUpdate一直返回false什么原因?

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

提交上新版本,版本号从1.1.1变成1.1.2,上线并发布成功

没有弹出更新提示框,hasUpdate返回false

在开发者工具模拟更新时是正确的,有提示的!

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

5 个回答

  • 一九七七
    一九七七
    2022-01-23
    App({
      onShow: function (e) {
        const updateManager = wx.getUpdateManager();
        updateManager.onCheckForUpdate(function (res) {
          if (res.hasUpdate) {
            wx.showLoading({
              mask: true,
              title: '应用更新中',
            })
          }
        })
        updateManager.onUpdateReady(function () {
          wx.hideLoading({
            success: (res) => {
              updateManager.applyUpdate()
            }
          })
        })
        updateManager.onUpdateFailed(function () {
          wx.showToast({
            title: '小程序加载失败',
            icon: 'error',
            duration: 2000
          })
        })
      },
    })
    


    2022-01-23
    有用
    回复
  • 一只小喵喵
    一只小喵喵
    2021-02-19

    为啥苹果的有版本更新提示andriod没有

    2021-02-19
    有用
    回复
  • I'm null🧐
    I'm null🧐
    2020-12-25

    这个问题我解决了,在小程序后台设置一下,最低基础版本库为1.9.90就可以了

    2020-12-25
    有用
    回复
  • Cjiang
    Cjiang
    2020-11-05

    你好,请参考文档:https://developers.weixin.qq.com/miniprogram/dev/api/base/update/UpdateManager.onCheckForUpdate.html

    返回false看下是否已经更新到最新版本了。

    2020-11-05
    有用
    回复 5
    • ✨梦雪✨
      ✨梦雪✨
      2020-11-10
      autoUpdate:function(){
          var self = this
              // 获取小程序更新机制兼容
              if (wx.canIUse('getUpdateManager')) {
                const updateManager = wx.getUpdateManager()
                //1. 检查小程序是否有新版本发布
                updateManager.onCheckForUpdate(function(res) {
                  // 请求完新版本信息的回调
                  if (res.hasUpdate) {
                    //检测到新版本,需要更新,给出提示
                    wx.showModal({
                      title: '更新提示',
                      content: '检测到新版本,是否下载新版本并重启小程序?',
                      success: function(res) {
                        if (res.confirm) {
                          //2. 用户确定下载更新小程序,小程序下载及更新静默进行
                          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()
           //新的版本已经下载好,调用 applyUpdate 应用新版本并重启
           updateManager.applyUpdate()
          })
          updateManager.onUpdateFailed(function () {
           // 新的版本下载失败
           wx.showModal({
            title: '已经有新版本了哟~',
            content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
           })
          })
         }




      这样写的,但是并没有弹窗,也没有更新!调试器测了完全没问题,发布到线上没反应
      2020-11-10
      回复
    • 徐哈哈
      徐哈哈
      2020-11-17
      同样的情况,我们需求是发布一个新版本就要下载更新小程序版本,但是updateManager.onCheckForUpdate一直返回false,不使用这个方法检测版本更新直接调用弹框的方法,安卓手机弹出来了,但是苹果手机没有弹出来
      2020-11-17
      回复
    • Maggie
      Maggie
      2020-12-24回复I'm null🧐
      大佬,你的这个问题解决了吗?我也遇到了同样的问题
      2020-12-24
      回复
    • 🔅
      🔅
      2021-01-06回复徐哈哈
      直接调用弹框 是什么方法呢
      2021-01-06
      回复
    • 小饼干
      小饼干
      2021-11-30
      要将这些代码写到根目录的app.js文件的APP层级中,就可以了。
      2021-11-30
      回复
  • Zero
    Zero
    2020-11-05

    换个基础版本库试试

    2020-11-05
    有用
    回复
登录 后发表内容
问题标签