〇、目地
在App
版的过程经常出现不能及时更新版本的情况,根据App
自身条件及发布地址的不同做的更新方案。主要解决如下问题:
- 测试过程中不能及时更新最新的客户端;
- 用户使用的不是最新的客户端;
- 开发已经发布了最新的接口,导致老客户端APP不能正常使用;
- 验证基本的客户端版本被䵵改;
等关于因为版本不同,所导致的各种不友好的体验。
一、数据库设计
- App_VersionManager(App版本管理表)
序号 | 字段名称 | 描述 |
---|---|---|
0001 |
AVM_ID |
主键,唯一键 |
0002 |
AVM_Version |
发布的版本号 |
0003 |
AVM_PublishURL |
版本发布的地址 |
0004 |
AVM_Environment |
发布环境(分fir 及生产发布) |
0005 |
AVM_Descption |
版本描述 |
0006 |
AVM_UpdateFlag |
更新标志(1可选更新,2为强制更新) |
0007 |
AVM_PublishTime |
发布时间 |
0008 |
AVM_OSVersion |
系统版本iOS/Android
|
0009 |
AVM_MiniVersion |
最低支持版本(在这个版本之前的Version都为必须更新) |
0010 |
AVM_VersionInterval |
版本间隔提醒时间(单位:天)如:今天提醒了,\n在几天后如果还没有更新再提醒,主要用于选择性更新 |
-
APP_VersionDevice
(App
版本设备表)
序号 | 字段名称 | 描述 |
---|---|---|
0001 |
AVD_ID |
主键、唯一键 |
0002 |
AVD_Version |
最新版本 |
0003 |
AVD_UDID |
设备唯一ID
|
0004 |
AVD_DateTime |
提示时间(每个设备的上一次提示时间,不需要关注有没有点击) |
0005 |
AVM_ID |
外键ID
|
二、服务端管理界面设计
-
App
版本管理
序号 | 版本号 | 发布环境 | 标志 | 系统 | 版本间隔提醒时间 | 发布时间 | 操作 |
---|---|---|---|---|---|---|---|
0001 |
1.0.1 |
Fir |
选择更新 | iOS |
4天 | 2022-05-16 | 更新 |
0002 |
1.0.1 |
Fir |
选择更新 | Android |
4天 | 2022-05-16 | 更新 |
0003 |
1.0.1 |
App Store |
选择更新 | iOS |
4天 | 2022-05-16 | 更新 |
App
版本查看
(略)App
版本新增
(略)App
版本修改
(略)
三、接口流程设计
1.png
四、接口设计
-
App_QueryVersion
(提供给客户端开发)
发送参数
序号 | 字段名称 | 描述 |
---|---|---|
0001 |
clientVersion |
客户端版本号 |
0002 |
clientSource |
客户端版本来源 |
0003 |
udid |
设备唯一ID
|
接收参数
序号 | 字段名称 | 描述 |
---|---|---|
0001 |
updateFlag |
更新标志(0不需要更新,1选择更新,2强制更新) |
0002 |
publishURL |
发布URL
|
0003 |
descption |
版本描述 |
五、客户端版本设计
1、客户端每次打开APP
的时候统一调用版本比对接口。主要上传参数有:
客户端版本号
客户端版本来源
设备唯一ID
2、对比更新标志
- 如果不用更新,就不弹更新提示框;
- 本地客户端如果不是最新版本:
弹出对应的更新提示。选择性更新提示按钮设置为:暂不更新、立即更新
强制更新提示按钮设置为:立即更新(跳转到对应的更新页面。并且退出应用)