收藏
回答

怎么在用户使用小程序的过程中检测更新?

项目处在更新迭代阶段,为了用户体验,服务器是灰度发布的,可是有些时候更新时接口并不能做到向上兼容。就是旧版本使用的接口可能在新版本已经不能使用了。

这时候就有一种场景:如果有用户正在使用小程序,而在这期间我们更新版本,服务器已经更新完了,小程序发布出去,可是用户没有重新启动过小程序,会导致用户一直使用的是旧版的小程序可是是新版的服务,这时候可能会报错,影响用户体验。

我尝试在接口出现错误时使用 onCheckForUpdate 检测是否有更新,如果有更新则要求用户重新启动小程序触发新版本下载,可是试验中发现,onCheckForUpdate 方法只是监听向微信后台请求检查更新结果事件,所以它实际上拿到的结果是用户这次启动小程序时,是否有更新的结果,而不是接口出错这一时刻是否有更新的结果。

针对这种情况,官方是否有提供相应的能力解决这样的问题呢?

最后一次编辑于  2022-06-10
回答关注问题邀请回答
收藏

4 个回答

  • momo
    momo
    2022-06-10

    建议完善兼容性,如使用版本号等来区分新旧接口。

    无法向后兼容的架构是糟糕的软件设计。

    2022-06-10
    有用 1
    回复
  • Yza
    Yza
    2022-06-10

    自己做一个管理版本号的接口,全局做个定时器查询一下不就可以了吗,有更新就提示客户重新打开。

    2022-06-10
    有用
    回复 3
    • 辰栩鼋
      辰栩鼋
      2022-06-10
      就是每个用户打开小程序之后,就在后面一直轮询吗?这样是不是不太友好
      2022-06-10
      回复
    • Yza
      Yza
      发表于小程序端
      2022-06-10回复辰栩鼋

      那可以这样嘛,你小程序肯定要访问数据接口吧。接口返回里加上版本号,小程序处理request结果时,做个前置拦截器判断版本号

      2022-06-10
      回复
    • 辰栩鼋
      辰栩鼋
      2022-06-14回复Yza
      如果所有的数据接口都加上版本号,可能会有点麻烦,而且这个版本号其实是针对小程序的版本号,和pc、整个系统的版本其实并没有关系,这样也有些不太合适,小程序和pc其实是一样的接口。我再考虑一下,谢谢
      2022-06-14
      回复
  • 跨商通
    跨商通
    2022-06-10

    每个页面的onShow里,写上强制更新代码。完事。

    2022-06-10
    有用
    回复 11
    • 辰栩鼋
      辰栩鼋
      2022-06-10
      还是用onCheckForUpdate ?
      2022-06-10
      回复
    • 跨商通
      跨商通
      2022-06-10回复辰栩鼋
      https://developers.weixin.qq.com/miniprogram/dev/api/base/update/UpdateManager.html#示例代码
      2022-06-10
      回复
    • 辰栩鼋
      辰栩鼋
      2022-06-10回复跨商通
      onCheckForUpdate 方法只是监听向微信后台请求检查更新结果事件,所以它实际上拿到的结果是用户这次启动小程序时,是否有更新的结果,而不是接口出错这一时刻是否有更新的结果
      2022-06-10
      1
      回复
    • 辰栩鼋
      辰栩鼋
      2022-06-10回复辰栩鼋
      就是你就算写了这个,从你打开小程序的那刻就决定了你onCheckForUpdate 方法返回的结果了,无论请求多少次都一样
      2022-06-10
      回复
    • 跨商通
      跨商通
      2022-06-10回复辰栩鼋
      假如小程序启动时,版本没有更新,然后用户启动小程序期间,你发布了新版本,onCheckForUpdate是生效的。
      2022-06-10
      回复
    查看更多(6)
  • Frank
    Frank
    2022-06-10

    这就是为啥发版要半夜发了

    2022-06-10
    有用
    回复 3
    • 辰栩鼋
      辰栩鼋
      2022-06-10
      就是现在有些客户半夜12点还在用我们的系统,所以灰度很必要
      2022-06-10
      回复
    • Frank
      Frank
      2022-06-10回复辰栩鼋
      这个问题,确实比较棘手,希望有比较好的方案,也能来微信发个文章啥的,给大家学习借鉴一下
      2022-06-10
      回复
    • 辰栩鼋
      辰栩鼋
      2022-06-10回复Frank
      嗯嗯,要是有解决办法了就来记录一下
      2022-06-10
      回复
登录 后发表内容