日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

平板升级android版本号,App版本升级方案

發布時間:2024/1/1 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 平板升级android版本号,App版本升级方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

App版本升級方案小結

方案一:后端處理邏輯 - 通過指定數字版本號判斷 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 '修改時間',

`delete_time` int(10) NOT NULL DEFAULT 0 COMMENT '刪除時間',

PRIMARY KEY (`id`) USING BTREE,

UNIQUE KEY `appidversionno` (`appid`,`cur_version`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='app升級信息表';

方案二:后端處理邏輯 - 考慮android和ios app/ipad升級,只錄入最新上線版本的前一個版本升級策略

入參數:

appid app應用類型:1.A商城 android app、2.A商城 ios app,3.A商城 android ipad、4.A商城 ios ipad, 必須

app_version 當前app版本號(非數字版本),如v1.0.0 或者 1.0.0,為了兼容,服務端接收到v開頭的版本,自動去掉大小寫的v字母,必須

響應json參數:

code

msg

data

data字段不為空情況下:

1.原樣返回的app版本號 : app_version,如v1.0.1,必須

2.app下載url : down_url,必須

3.更新文案 : update_desc,必須

4.更新方式: update_type,0可選更新,1強制更新,必須

5.apk大小:app_size,單位字節,對andorid必須,對ios值為空

6.apk文件md5值:apk_md5,字符串,可選

情況1-data為空則客戶端無需升級:

{"code": 0,

"msg": "",

"data": {}

}

情況2-有對應版本的升級策略:

{

"code": 0,

"msg": "",

"data": {

"app_version": "1.0.0",

"down_url": "http://www.nfangbian.com/app.apk",

"update_desc": "優化app體驗",

"update_type": 0,

"app_size": "1000000",

"apk_md5": ""

}

}

服務端判斷邏輯:

1.查詢指定版本的信息SQL: select * from t_app_upgrade02 where appid=1 and app_version='1.0.1'?and is_delete=0 limit 1;

2.如果沒有查詢到記錄則不做更新,返回data為空對象

3.如果查詢到記錄,則再查詢 select * from t_app_upgrade02_lastinfo where appid=1 and is_lastversion=1 and is_delete=0 limit 1;

同時拼接1和3返回的記錄放入data對象中

表結構:

CREATE TABLE `t_app_upgrade02` (

`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商城 ios app、3.A商城 ios ipad、4.A商城 android ipad',

`app_version` varchar(20) NOT NULL DEFAULT '' COMMENT '指定的app版本號,1.0.1',

`update_type` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新方式,0可選更新,1強制更新',

`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 '修改時間',

`delete_time` int(10) NOT NULL DEFAULT 0 COMMENT '刪除時間',

PRIMARY KEY (`id`) USING BTREE,

UNIQUE KEY `appidversion` (`appid`,`app_version`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='android和ios app升級表';

CREATE TABLE `t_app_upgrade02_lastinfo` (

`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商城 ios app、3.A商城 ios ipad、4.A商城 android ipad',

`last_version` varchar(20) NOT NULL DEFAULT '' COMMENT '最新app版本號,1.0.1',

`is_lastversion` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '是否最新版本記錄,0歷史版本記錄,1最新版本記錄,對于同一個appid和last_version的is_lastversion值為1的只有一條',

`app_name` varchar(20) NOT NULL DEFAULT '' COMMENT 'App名稱,如商城A',

`update_desc` varchar(155) NOT NULL DEFAULT '' COMMENT '最新版本的更新文案',

`down_url` varchar(255) NOT NULL DEFAULT '' COMMENT '如果應用類型是android則為apk下載地址,如果應用是ios則為app store下載地址',

`apk_size` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'apk文件大小,單位字節,僅對android有效',

`apk_md5` varchar(50) NOT NULL DEFAULT '' COMMENT 'apk文件md5值,僅對android有效',

`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 '修改時間',

`delete_time` int(10) NOT NULL DEFAULT 0 COMMENT '刪除時間',

PRIMARY KEY (`id`) USING BTREE,

UNIQUE KEY `appidversion` (`appid`,`last_version`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='android和ios app版本信息表';

方案三-下發最新版本的信息,由客戶端判斷是否升級及強升邏輯

入參數:

appid app應用類型:1.A商城、2.B商城,必須

app_type 終端類型,1.android app,2.andorid ipad,3.ios app ,必須

響應json參數:

code

msg

data

情況1-data為空則客戶端無需升級:{ "code": 0, "msg": "", "data": { } }

情況2-有最新版本信息:

{

"code": 0,

"msg": "",

"data": {

"last_version": "1.0.0",

"min_version": "",

"down_url": "http://www.nfangbian.com/app.apk",

"update_desc": "升級文案",

"update_type": 0,

"app_size": "1000000",

"apk_md5": ""

}

}

查詢記錄sql: select * from t_app_upgrade03_lastinfo where appid=1 and app_type=1 and is_lastversion=1 and is_delete=0 limit 1;

客戶端判斷邏輯:

update_type表升級方式,0不升級,1可選升級,2強制升級

1. 默認值update_type = 0

2. 如果cur_version < last_version,則update_type = 1

3. 如果cur_version < min_version,則update_type = 2

表結構

CREATE TABLE `t_app_upgrade03_lastinfo` (

`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID',

`appid` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT 'app應用類型:1.A商城、2.B商城、3.C商城',

`app_type` tinyint(4) unsigned DEFAULT 0 COMMENT '終端類型,1.app,2.ipad',

`last_version` varchar(20) NOT NULL DEFAULT '' COMMENT '最新app版本號,1.0.1',

`is_lastversion` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '是否最新版本記錄,0歷史版本記錄,1最新版本記錄,對于同一個appid和last_version的is_lastversion值為1的只有一條',

`min_version` varchar(20) NOT NULL DEFAULT '' COMMENT 'App客戶端版本小于這個版本則強升',

`app_name` varchar(20) NOT NULL DEFAULT '' COMMENT 'App名稱,如A商城',

`update_desc` varchar(155) NOT NULL DEFAULT '' COMMENT '最新版本的更新文案',

`down_url` varchar(255) NOT NULL DEFAULT '' COMMENT '如果應用類型是android則為apk下載地址,如果應用是ios則為app store下載地址',

`apk_size` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'apk文件大小,單位字節,僅對android有效',

`apk_md5` varchar(50) NOT NULL DEFAULT '' COMMENT 'apk文件md5值,僅對android有效',

`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 '修改時間',

`delete_time` int(10) NOT NULL DEFAULT 0 COMMENT '刪除時間',

PRIMARY KEY (`id`) USING BTREE,

UNIQUE KEY `appidversion` (`appid`,`last_version`,`app_type`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='android和ios app最新版本信息表';

方案四: 服務器端判斷

入參數:

appid app應用類型:1.A商城、2.B商城,必須

app_type 終端類型,1.android app,2.andorid ipad,3.ios app ,4.ios ipad,必須

cur_version 客戶端當前app版本,如1.0.1,v1.0.1,必須

響應json參數:

code

msg

data

data字段不為空情況下:

1.升級方式: update_type,0無需更新,1可選更新,2強制更新,必須

2.最新app版本號 : app_version,如1.0.1,必須

3.app下載url : down_url,android是apk地址,ios是appstore地址,必須

4.更新文案 : update_desc,必須

5.apk大小:app_size,單位字節,對andorid必須,對ios值為空

6.apk文件md5值:apk_md5,字符串,可選

情況1-客戶端兼容一下,如果data為空則客戶端無需升級:{ "code": 0, "msg": "","data": { } }

響應示例2:??{"code": 0,

"msg": "",

"data": {

"update_type": 0,

"app_version": "1.0.0",

"down_url": "http://www.nfangbian.com/app.apk",

"update_desc": "優化app體驗",

"app_size": "1000000",

"apk_md5": ""

}

}

服務端判斷邏輯:

1. 把接收的app版本換算成權重,$cur_version = '1.0.1';

$last_versionno=versionToWeight($cur_version);//100000001

//只支持三段式、四段式的,每段最多4位

function versionToWeight($version) {

$tmp = explode(".", $version);

switch(count($tmp)) {

case 1:

$number = $tmp[0];

break;

case 2:

$number = $tmp[0]*10000+$tmp[1];

break;

case 3:

$number = $tmp[0]*100000000+$tmp[1]*10000+$tmp[2];

break;

case 4:

$number = $tmp[0]*1000000000000 + $tmp[1]*100000000+$tmp[2]*10000+$tmp[3];; //不支持

break;

default:

$number = 0; //不支持

break;

}

return $number;

}

2. 查詢最新版本記錄: select * from t_app_upgrade04 where appid=1 and app_type=1 and is_delete=0 order by last_versionno desc limit 1;

3. update_type表升級方式,0不升級,1可選升級,2強制升級

默認值update_type = 0

如果cur_version版本在強升白名單內(在php中配置),則update_type = 2

如果cur_version < last_version,則update_type = 1

如果cur_version < min_version,則update_type = 2

表結構

CREATE TABLE `t_app_upgrade04` (

`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID',

`appid` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT 'app應用類型:1.A商城、2.B商城、3.C商城',

`app_type` tinyint(4) unsigned DEFAULT 0 COMMENT '終端類型,1.android app,2.andorid ipad,3.ios app ',

`last_version` varchar(20) NOT NULL DEFAULT '' COMMENT '最新app版本號,1.0.1',

`last_versionno` bigint(20) NOT NULL DEFAULT 0 COMMENT '最新app版本號,1.0.1對應的權重值,值越大的為最新版本',

`min_version` varchar(20) NOT NULL DEFAULT '' COMMENT 'App客戶端版本小于這個版本則強升',

`app_name` varchar(20) NOT NULL DEFAULT '' COMMENT 'App名稱,如A商城',

`update_desc` varchar(155) NOT NULL DEFAULT '' COMMENT '最新版本的更新文案',

`down_url` varchar(255) NOT NULL DEFAULT '' COMMENT '如果應用類型是android則為apk下載地址,如果應用是ios則為app store下載地址',

`apk_size` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'apk文件大小,單位字節,僅對android有效',

`apk_md5` varchar(50) NOT NULL DEFAULT '' COMMENT 'apk文件md5值,僅對android有效',

`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 '修改時間',

`delete_time` int(10) NOT NULL DEFAULT 0 COMMENT '刪除時間',

PRIMARY KEY (`id`) USING BTREE,

UNIQUE KEY `appidversion` (`appid`,`app_type`,`last_version`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='app版本升級信息表';

總結

以上是生活随笔為你收集整理的平板升级android版本号,App版本升级方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。