App 版本更新接口的设计

工作这几年碰到的版本检测升级的接口也算是五花八门,啥样的都有,但肯定有的功能是有个apk的下载链接,能间接或直接提示你是强制还是非强制更新:

间接是指提供你后台最新版本号,让你自己与本地版本号通过比较得出是否升级;

直接就是后台接口直接返回个Boolean类型告诉你是强制或者非强制更新。

个人认为一个好的版本检测接口需要设计的更灵活更清晰用起来更方便,下面就我理解的接口设计如下(如思路有误,欢迎指正):

总字段如下(并不是所有字段都要返回给客户端):
 1.最新版本号 :newVersion
 2.最小支持版本号 : minVersion
 3.apk下载url : apkUrl
 4.更新文案 : updateDescription
 5.是否有更新 : isUpdate
 6.是否强制更新 : forceUpdate

方案一(后端处理逻辑):
在客户端请求参数中添加当前版本号currentVersion传输给后台,由后台根据客户端传过来的当前版本号currentVersion做相应的判断后给出是否强制更新。
后端逻辑如下:

如果currentVersion < newVersion,则isUpdate = true;

如果currentVersion < minVersion,则forceUpdate = true;

如果currentVersion >= minVersion,则forceUpdate = false;

如果有特殊需求可指定某个版本必须强制更新,如currentVersion == XXX,则forceUpdate = true;

如果currentVersion == newVersion,则isUpdate = false.

结论:
返回客户端的字段仅需要apk下载url : apkUrl、更新文案 : updateDescription、是否有更新 : isUpdate 、 是否强制更新 : forceUpdate 这四个字段即可。

方案二(前端处理逻辑):
逻辑和后端处理逻辑大体上一致,只是把逻辑判断移到前台,故需要后端提供最新版本号 :newVersion 、 最小支持版本号 : minVersion 、apk下载url : apkUrl 、更新文案 : updateDescription 这四个字段。

客户端逻辑如下:

如果currentVersion < newVersion,则有更新信息;

如果currentVersion < minVersion,则需要强制更新;

如果currentVersion >= minVersion,则不需要强制更新;

如果currentVersion == newVersion,则没有更新信息.

综上所述,这个处理逻辑客户端和后端谁来做都可以,无关乎懒不懒的问题,个人感觉灵活性后端比客户端方便多了,毕竟后端可以指定 minVersion 与 newVersion 中间的任意一个版本强制更新,而客户端做起来就没有那么灵活了,个人见解,如有更好的方案,欢迎指教。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工作这几年碰到的版本检测升级的接口也算是五花八门,啥样的都有,但肯定有的功能是有个apk的下载链接,能间接或直接提...
    闲庭阅读 16,104评论 9 51
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,898评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,054评论 2 59
  • 安装 创建容器
    顶儿响叮当阅读 176评论 0 0