35.3APP和服務(wù)器交互
1 如果是自動更新,APP啟動并進(jìn)入首頁后,向服務(wù)器發(fā)送POST請求,把APP的渠道號和用戶手機(jī)型號信息發(fā)給服務(wù)器。
如果是用戶手動更新,則用戶點擊相關(guān)功能菜單后,APP向服務(wù)器發(fā)送POST請求,把APP的渠道號和用戶手機(jī)型號信息發(fā)給服務(wù)器。
具體數(shù)據(jù)格式如下:
{
"jsonrpc":"2.0",
"params":{
"channel":"xxxx",
"model":"xxxx",
"version":"xxxx"
}
}
"channel":渠道號,如果值為"",表示是通用版本更新
"model":手機(jī)型號
2 服務(wù)器收到請求后,如果成功響應(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": 用于校驗APK包數(shù)據(jù)的完整性
(APP從服務(wù)器下載完APK包后,計算出MD5值,并和從服務(wù)器獲取的MD5值比較是否一樣)
"title": 提示框標(biāo)題欄顯示的文字
"changes": 顯示服務(wù)器端的更新日志
"upgrade":800—客戶端版本低于"version"的值,就提示升級,但不強(qiáng)制升級
801—強(qiáng)制升級
"interval": 顯示提示信息的時間間隔,以小時為單位,不支持小數(shù);
"limitTimes": 顯示提示信息次數(shù),不支持小數(shù);如為0,則沒有限制
如果出錯,返回如下數(shù)據(jù):
{
"jsonrpc":"2.0",
"result": {
"error":"xxxxxx"
}
}
3 如果服務(wù)器返回成功響應(yīng)的數(shù)據(jù),APP端把從服務(wù)器取得的版本號和自身版本號進(jìn)行對比,并按"upgrade"的各種數(shù)值進(jìn)行不同的處理。
如果服務(wù)器返回出錯信息,APP不進(jìn)行任何處理。