首页/八方信息/正文
微信小程序新版本发布后用户仍用旧版的原因及更新方法

 2025年08月27日  阅读 10

摘要:小程序版本更新的问题微信小程序在推出新版本后,使用者或许还在运用旧版本,原因是微信系统里留存着旧版本的积存,不会自主升级至最前沿版本。为了处理这一状况,创造者必须实施若干对策,以便让使用者能即时进行更新。不推荐的强制更新方式const updateMan...

小程序版本更新的问题

微信小程序在推出新版本后,使用者或许还在运用旧版本,原因是微信系统里留存着旧版本的积存,不会自主升级至最前沿版本。为了处理这一状况,创造者必须实施若干对策,以便让使用者能即时进行更新。

不推荐的强制更新方式

const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
  // 请求完新版本信息的回调
  console.log(res.hasUpdate)
})
updateManager.onUpdateReady(function () {
  wx.showModal({
    title: '更新提示',
    content: '新版本已经准备好,是否重启应用?',
    success(res) {
      if (res.confirm) {
        // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
        updateManager.applyUpdate()
      }
    }
  })
})
updateManager.onUpdateFailed(function () {
  // 新版本下载失败
})

一种粗暴的解决方式是要求用户手动卸载旧版小程序,再重新查找并启动新版。具体步骤是引导用户进入微信的“发现”页面,点击“小程序”选项,找到目标小程序并执行删除操作,随后通过搜索功能重新找到并打开。尽管这种手段可以迫使用户完成更新,却会极大降低用户的使用感受,因此不应当采用。

推荐的自动更新方案

更妥当的方案是在小程序的主界面操作里嵌入版本核对程序。用户启动小程序后,系统会自动核对是否存在新版本。一旦发现新版本,会立刻通知用户进行升级,并自动获取最新版本。这项功能从基础库1.9.90版本起开始提供,对于更早的版本需要实施适配措施。

重大更新的特殊处理

当版本升级包含关键改动时,需要强制用户进行更新,在用户选择放弃升级的情况下可实施特殊应对措施。届时将呈现一个提示框,明确告知用户必须升级才能维持正常使用。若用户确认升级,则启动更新程序,若选择不升级,则再次显示升级提示。

//app.js
App({
  onLaunch: function(options) {
    this.autoUpdate()
  },
  autoUpdate:function(){
    console.log(new Date())
    var self=this
    // 获取小程序更新机制兼容
    if (wx.canIUse('getUpdateManager')) {
      const updateManager = wx.getUpdateManager()
      //1. 检查小程序是否有新版本发布
      updateManager.onCheckForUpdate(function (res) {
        // 请求完新版本信息的回调
        if (res.hasUpdate) {
          //2. 小程序有新版本,则静默下载新版本,做好更新准备
          updateManager.onUpdateReady(function () {
            console.log(new Date())
            wx.showModal({
              title: '更新提示',
              content: '新版本已经准备好,是否重启应用?',
              success: function (res) {
                if (res.confirm) {
                  //3. 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                  updateManager.applyUpdate()
                } else if (res.cancel) {
                  //如果需要强制更新,则给出二次弹窗,如果不需要,则这里的代码都可以删掉了
                  wx.showModal({
                    title: '温馨提示~',
                    content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问的哦~',
                    success: function (res) {     
                      self.autoUpdate()
                      return;                 
                      //第二次提示后,强制更新                      
                      if (res.confirm) {
                        // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                        updateManager.applyUpdate()
                      } else if (res.cancel) {
                        //重新回到版本更新提示
                        self.autoUpdate()
                      }
                    }
                  })
                }
              }
            })
          })
          updateManager.onUpdateFailed(function () {
            // 新的版本下载失败
            wx.showModal({
              title: '已经有新版本了哟~',
              content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
            })
          })
        }
      })
    } else {
      // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
      wx.showModal({
        title: '提示',
        content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
      })
    }
  }
})

开发版的局限性

开发版和体验版小程序不存在版本差异,因此不能用于检验更新功能,模拟更新操作过后便失去效果,后续测试必须重新调整编译方式,这种状况给开发者的检测任务造成了一定麻烦。

更新流程的优化建议

当前升级机制存在数秒延迟,原因是版本提醒会在版本检测完毕且下载结束后才显示出来。更优的方案是在编译阶段一旦发现新版本就立刻发出通知,待用户应允后再启动下载过程。这样做能够有效减少用户的等待时长。

更新过程中的用户体验

整个更新验证环节耗时大约1到2秒,若用户在此阶段实施操作,更新通知将会干扰用户活动。建议在获取新版本期间展示进展条,以便用户明确知晓进行中状态,待下载完毕后自动重启应用,以此提升整体体验的连贯性。

基础库版本设置建议

App({
  onLaunch: function(options) {
    this.autoUpdate()
  },
  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: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
      })
    })
  }
})

运营人员于平台后台能够调整核心库的起始版本。依据用户实际应用状况及官方统计,挑选一个涵盖大部分人群的版本。如此一来,既可降低接口适配检测的复杂性,又可引导用户升级微信软件,从而让小程序的扩展功能得以顺利应用。

版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;

原文链接:http://wen.bjhwtx.com/post/35964.html

标签:

博览广文网

博览广文网为所有文学爱好者、新闻爱好者、关注生活多方面内容的观众朋友提供多方位的内容呈现、提升阅读空间、填充碎片时间,开阔读者的视野、增长见识、了解民生、一个让您不出户尽知天下事的网站平台!
热门标签
关于我们
广文舒阅网—让天下读者有家可归!这里汇聚了各类优质文化信息,无论是全球热点、历史故事,还是实用百科、趣味探索,您都能轻松获取。我们希望用阅读点亮您的世界,让每一次浏览都充满收获和乐趣。
导航栏A标题
广文舒阅网
扫码关注
联系方式
全国服务热线:0755-88186625
Q Q:8705332
Email:admin@lanyu.com
地址:深圳市福田区海雅缤纷国际大厦5层501
Copyright 深圳市蓝宇科技有限公司 版权所有 备案号:京ICP备20013102号-1