收藏
回答

小程序更新onCheckForUpdate无效?

小程序使用uni-app写的,在app.vue页面 onLaunch()写的更新机制代码

代码如下:

autoUpdate:function(){

var self = this

console.log('有更新0')

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

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

console.log('有更新1')

      const updateManager = wx.getUpdateManager()

  console.log('updateManager')

  console.log(updateManager)

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

      updateManager.onCheckForUpdate(function(res) {

  console.log('res.hasUpdate')

  console.log(res.hasUpdate)

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

        if (res.hasUpdate) {

console.log('有更新2')

const invite_user_id = uni.getStorageSync('invite_user_id')

uni.clearStorageSync()

if(invite_user_id){

uni.setStorageSync('invite_user_id',invite_user_id)

}

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

          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){

console.log('有更新3')

var self=this

wx.showLoading();

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

updateManager.onUpdateReady(function () {

console.log('有更新4')

wx.hideLoading()

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

updateManager.applyUpdate()

})

updateManager.onUpdateFailed(function () {

// 新的版本下载失败

wx.showModal({

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

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

})

})

}

}

问题 :发布新版本后,手机不弹出提示更新提示!打印res.hasUpdate的值为false。

oppo手机可提示,苹果手机可提示。其它手机都不提示

最后一次编辑于  2021-08-16
回答关注问题邀请回答
收藏

1 个回答

  • 😶
    😶
    2021-08-13

    你好,请移步uni社区进行搜索哈

    2021-08-13
    有用
    回复
登录 后发表内容