收藏
回答

小程序发布成功后,线上小程序与实际版本不一致若让客户手动触发强制更新小程序是否能否更新到最新版?

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

3 个回答

  • 夏落
    夏落
    2023-08-10

    可以实现强制更新到最新小程序,原来写的,仅供参考

    /**
     * 小程序更新
     * @param {Number} status
     * 1: 不提醒更新
     * 2: 更新提醒 - 非强制新版本打开
     * 3: 提醒更新 - 强制新版本打开
     */
    export function wpUpgradeMiniProgram (status = 1, message = '') {
      // status: 1, 不提醒更新
      if (status === 1) {
        return
      }
    
      // 获取全局唯一的版本更新管理器,用于管理小程序更新
      const updateManager = wx.getUpdateManager()
    
      /**
       * 监听向微信后台请求检查更新结果事件
       * 微信在小程序冷启动时自动检查更新,不需由开发者主动触发。
       */
      updateManager.onCheckForUpdate((res) => {
        if (res.hasUpdate) {
          wx.showLoading({
            title: '更新中...',
            mask: true
          })
        }
      })
    
      /**
       * 监听小程序有版本更新事件
       * 客户端主动触发下载(无需开发者触发),下载成功后回调
       */
      updateManager.onUpdateReady(() => {
        wx.hideLoading()
        wx.showModal({
          title: '更新提示',
          content: message || '新版本已经准备好,是否重启应用?',
          cancelText: '取消',
          showCancel: status === 2,
          confirmText: '重启',
          success (res) {
            if (res.confirm) {
              // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
              updateManager.applyUpdate()
            }
          }
        })
      })
    
      /**
       * 监听小程序更新失败事件
       * 小程序有新版本,客户端主动触发下载(无需开发者触发),下载失败(可能是网络原因等)后回调
       */
      updateManager.onUpdateFailed(() => {
        wx.hideLoading()
      })
    }
    
    2023-08-10
    有用 1
    回复 2
  • 老扬国色天香
    老扬国色天香
    发表于移动端
    2023-08-09
    a
    2023-08-09
    有用
    回复
  • 晚星
    晚星
    2023-08-09

    例如:最新发布版本1.0.1,线上小程序版本号为1.0.0,此时

    wx.getUpdateManager获取到的res.hasUpdate 依然为false,这时让用户点击按钮触发wx.getUpdateManager() 中的onUpdateReady() 以及applyUpdate() 能否成功更新小程序?

    2023-08-09
    有用
    回复
登录 后发表内容