35.3APP和服務(wù)器交互
1 如果是自動(dòng)更新,APP啟動(dòng)并進(jìn)入首頁(yè)后,向服務(wù)器發(fā)送POST請(qǐng)求牺陶,把APP的渠道號(hào)和用戶手機(jī)型號(hào)信息發(fā)給服務(wù)器丙唧。
如果是用戶手動(dòng)更新愈魏,則用戶點(diǎn)擊相關(guān)功能菜單后,APP向服務(wù)器發(fā)送POST請(qǐng)求想际,把APP的渠道號(hào)和用戶手機(jī)型號(hào)信息發(fā)給服務(wù)器培漏。
具體數(shù)據(jù)格式如下:
{
"jsonrpc":"2.0",
"params":{
"channel":"xxxx",
"model":"xxxx",
"version":"xxxx"
}
}
"channel":渠道號(hào),如果值為""胡本,表示是通用版本更新
"model":手機(jī)型號(hào)
2 服務(wù)器收到請(qǐng)求后牌柄,如果成功響應(yīng),返回如下數(shù)據(jù):
{
"jsonrpc":"2.0",
"result":{
"url":"http://xxx/xxx.apk",
"version":"1.0.1",
"size":xxxx,
"fileMd5":"xxxxxxxx",
"title":"xxxxxxxx"
"changes":"xxxxxxxx"
"upgrade":800,
"interval":24,
"limitTimes":99
}
}
"fileMd5": 用于校驗(yàn)APK包數(shù)據(jù)的完整性
(APP從服務(wù)器下載完APK包后侧甫,計(jì)算出MD5值珊佣,并和從服務(wù)器獲取的MD5值比較是否一樣)
"title": 提示框標(biāo)題欄顯示的文字
"changes": 顯示服務(wù)器端的更新日志
"upgrade":800—客戶端版本低于"version"的值,就提示升級(jí)披粟,但不強(qiáng)制升級(jí)
801—強(qiáng)制升級(jí)
"interval": 顯示提示信息的時(shí)間間隔咒锻,以小時(shí)為單位,不支持小數(shù)守屉;
"limitTimes": 顯示提示信息次數(shù)惑艇,不支持小數(shù);如為0拇泛,則沒(méi)有限制
如果出錯(cuò)滨巴,返回如下數(shù)據(jù):
{
"jsonrpc":"2.0",
"result": {
"error":"xxxxxx"
}
}
3 如果服務(wù)器返回成功響應(yīng)的數(shù)據(jù),APP端把從服務(wù)器取得的版本號(hào)和自身版本號(hào)進(jìn)行對(duì)比俺叭,并按"upgrade"的各種數(shù)值進(jìn)行不同的處理恭取。
如果服務(wù)器返回出錯(cuò)信息,APP不進(jìn)行任何處理绪颖。