收藏
回答

关于小程序更新机制的问题

在很久之前的版本就加上了检查版本更新的机制


但是到现在看数据,依然有部分用户访问到的是两三个星期之前的版本,有些页面已经被下掉了,就开始报错,有没有大神指点下,具体的小程序更新机制是怎么样的呢,为什么会出现这样的情况


if(wx.canIUse('getUpdateManager')) {
      const updateManager = wx.getUpdateManager()
      updateManager.onCheckForUpdate((result) => {
        console.log(result)
        if(result.hasUpdate) {
          updateManager.onUpdateReady(() => { // 新的版本已经下载好
            wx.showModal({
              title: '更新提示',
              content: '新版本已经下载好,请重启应用。',
              success: (res) => {
                if (res.confirm) { // 点击确定,调用 applyUpdate 应用新版本并重启
                  updateManager.applyUpdate();
                }
              }
            });
          });
          updateManager.onUpdateFailed(() => { // 新的版本下载失败
            wx.showModal({
              title: '已经有新版本了哟~',
              content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~'
            });
          });
        }
      })
    } else {
      wx.showModal({
        title: '温馨提示',
        content: '当前微信版本过低,无法使用该应用,请升级到最新版本后重试。'
      })
    }


最后一次编辑于  2018-12-04  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

4 个回答

  • Helen
    Helen
    2018-12-19

    请问下 如果是改了个bug,然后改了版本号,这样更新机制会触发吗?比如我当前版本是1.1.1,,改完后版本变成1.1.2后会触发更新机制吗?


    2018-12-19
    赞同
    回复 2
    • 👋 👋 👋
      👋 👋 👋
      02-21

      同问

      02-21
      回复
    • nigel
      nigel
      03-01回复👋 👋 👋

      同问,请问楼主解决了嘛

      03-01
      回复
  • 豆豆
    豆豆
    2018-12-05

    版本库级别 支持吗 会不会是部分用户版本过低导致的   可以试试版本库升级

    2018-12-05
    赞同
    回复
  • 拾忆
    拾忆
    2018-12-04

    updateManager我一直用着,挺好的,没发现有啥问题,可以不用让用户去选择是否更新,强制有新版本直接覆盖更新就得了

    2018-12-04
    赞同
    回复 4
    • 盖伦
      盖伦
      2018-12-18

      我也是这么写的,昨天下午提交审核,晚上更新的版本 ,今天早上测试 ,也没有任何提示信息, 第一次打开 没有变化,后台清除小程序,再打开,来回2下 新作的活动弹层就显示了。

      fn_updateManager: function() {
              const updateManager = wx.getUpdateManager();
              updateManager.onCheckForUpdate(function(res) {
                  // 请求完新版本信息的回调
                  var has = res.hasUpdate;
                  if (has) {
                      updateManager.onUpdateReady(function() {
                          wx.showModal({
                              title: '更新提示',
                              content: '版本已更新,是否重启应用?',
                              success(res) {
                                  if (res.confirm) {
                                      // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                                      updateManager.applyUpdate()
                                  }
                              }
                          })
                      });
       
                      //更新失败
                      updateManager.onUpdateFailed(function () {
                          wx.showModal({
                              title: '更新失败',
                              content: '请到微信小程序列表删除后,重新搜索淘玉官方打开',
                              showCancel:false,
                              success(res) {
                                   
                              }
                          })
                      })
                  }
              })
          },

      我再 app.js中的 onshow中调用,  这个是什么问题,谢谢了

      2018-12-18
      回复
    • 我是周先生
      我是周先生
      01-09

      请问下 强制更新直接覆盖原来的版本这种做法,会在小程序打开时闪退直接跳出当前小程序吗?还是会悄悄更新,前端使用完全察觉不出来呢?

      01-09
      回复
    • 拾忆
      拾忆
      01-12回复我是周先生

      会有个showToast

      01-12
      回复
    • 我是周先生
      我是周先生
      01-25回复拾忆

      好的好的 晓得了 感谢

      01-25
      回复
  • 管凯旋
    管凯旋
    2018-12-04

    1,用户自己没点确定更新

    2,updateManager这API可能有问题。。。

    2018-12-04
    赞同
    回复 3
    • sunshine
      sunshine
      2018-12-12

      拒绝之后就不会再提示了吗

      2018-12-12
      回复
    • 管凯旋
      管凯旋
      2018-12-12回复sunshine

      那就看你自己写的逻辑了啊,你之后再有调用就会有提示,没调用就没了啊

      2018-12-12
      回复
    • sunshine
      sunshine
      2018-12-12回复管凯旋

      谢谢  我已经写了

      2018-12-12
      回复