方案一:后端处理逻辑 - 通过指定数字版本号判断 app/ipad升级
入参数:
appid app应用类型:1.A商城android app、2.A商城android ipad、3.A商城 ios app
cur_version 当前app版本数字号,如99,必须
响应json参数:
code
msg
data
data下字段如下:
1.最新app版本数字号 :new_version,如100,必须
2.用于展示的app版本号 : app_version,如v1.0.1,必须
3.apk或app store下载url : down_url,必须
4.更新文案 : update_desc,必须
5.是否可更新 : is_update,1需要更新,0无需更新,必须
6.是否强制更新 : force_update,1强升、0无需强升,必须
7.apk大小:app_size,单位字节,必须
8.apk文件md5值:apk_md5,字符串,可选
json示例:
{
"code": 0,
"msg": "",
"data": {
"new_version": 100,
"app_version": "v1.0.1",
"down_url": "http://www.nfangbian.com/app.apk",
"update_desc": "优化app体验",
"is_update": 1,
"force_update": 0,
"app_size": "1000000",
"apk_md5": ""
}
}
服务端判断逻辑:
查询最新版本信息
SQL: select * from t_app_upgrade where appid=1 and is_delete=0 order by new_version desc limit 1;
1. 默认值is_update = 0, force_update = 0
2. 如果cur_version < new_version,则is_update = 1
3. 如果cur_version < min_version,则force_update = 1
4. 如果cur_version >= min_version,则force_update = 0
5. 如果cur_version == new_version,则is_update = 0
表结构:
CREATE TABLE `t_app_upgrade` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`appid` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT 'app应用类型:1.A商城 android app 、2.A商城 android ipad、3.A商城 ios app',
`app_name` varchar(20) NOT NULL DEFAULT '' COMMENT 'App名称,如A商城',
`update_desc` varchar(155) NOT NULL DEFAULT '' COMMENT '更新文案',
`app_version` varchar(20) NOT NULL DEFAULT '' COMMENT '当前app版本,用于展示的,如v1.0.1',
`new_version` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '数字版本号,最新版本按这个倒序排即可,例如100就代表是v1.0.1版本',
`min_version` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '适合最小版本号,如80',
`down_url` varchar(255) NOT NULL DEFAULT '' COMMENT 'apk或者app store下载地址',
`apk_size` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'apk文件大小,单位字节,对ios值为空',
`apk_md5` varchar(50) NOT NULL DEFAULT '' COMMENT 'apk文件md5值,对ios值为空',
`is_delete` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除 0-正常 1-删除',
`create_time` int(10) NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(10) NOT NULL DEFAULT 0 COMMENT '修改时间&#