APP开发实战135-APP版本更新之APP和服务器交互
35.3APP和服务器交互
1 如果是自动更新,APP启动并进入首页后,向服务器发送POST请求,把APP的渠道号和用户手机型号信息发给服务器。
如果是用户手动更新,则用户点击相关功能菜单后,APP向服务器发送POST请求,把APP的渠道号和用户手机型号信息发给服务器。
具体数据格式如下:
{
"jsonrpc":"2.0",
"params":{
"channel":"xxxx",
"model":"xxxx",
"version":"xxxx"
}
}
"channel":渠道号,如果值为"",表示是通用版本更新
"model":手机型号
2 服务器收到请求后,如果成功响应,返回如下数据:
{
"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包数据的完整性
(APP从服务器下载完APK包后,计算出MD5值,并和从服务器获取的MD5值比较是否一样)
"title": 提示框标题栏显示的文字
"changes": 显示服务器端的更新日志
"upgrade":800—客户端版本低于"version"的值,就提示升级,但不强制升级
801—强制升级
"interval": 显示提示信息的时间间隔,以小时为单位,不支持小数;
"limitTimes": 显示提示信息次数,不支持小数;如为0,则没有限制
如果出错,返回如下数据:
{
"jsonrpc":"2.0",
"result": {
"error":"xxxxxx"
}
}
3 如果服务器返回成功响应的数据,APP端把从服务器取得的版本号和自身版本号进行对比,并按"upgrade"的各种数值进行不同的处理。
如果服务器返回出错信息,APP不进行任何处理。