项目处在更新迭代阶段,为了用户体验,服务器是灰度发布的,可是有些时候更新时接口并不能做到向上兼容。就是旧版本使用的接口可能在新版本已经不能使用了。
这时候就有一种场景:如果有用户正在使用小程序,而在这期间我们更新版本,服务器已经更新完了,小程序发布出去,可是用户没有重新启动过小程序,会导致用户一直使用的是旧版的小程序可是是新版的服务,这时候可能会报错,影响用户体验。
我尝试在接口出现错误时使用 onCheckForUpdate 检测是否有更新,如果有更新则要求用户重新启动小程序触发新版本下载,可是试验中发现,onCheckForUpdate 方法只是监听向微信后台请求检查更新结果事件,所以它实际上拿到的结果是用户这次启动小程序时,是否有更新的结果,而不是接口出错这一时刻是否有更新的结果。
针对这种情况,官方是否有提供相应的能力解决这样的问题呢?
建议完善兼容性,如使用版本号等来区分新旧接口。
无法向后兼容的架构是糟糕的软件设计。
自己做一个管理版本号的接口,全局做个定时器查询一下不就可以了吗,有更新就提示客户重新打开。
那可以这样嘛,你小程序肯定要访问数据接口吧。接口返回里加上版本号,小程序处理request结果时,做个前置拦截器判断版本号
每个页面的onShow里,写上强制更新代码。完事。
这就是为啥发版要半夜发了