Skip to content

VersionChecker接口设计

Pengfei Han edited this page May 12, 2017 · 2 revisions

VersionChecker主要负责提供版本检测功能,根据用户请求获取最新版本信息。具体可以参考需求分析文档,客户端与服务器字段约定同样参考需求文档中的约定。

自定义数据结构及接口

  • ResponseResInfo:资源的版本信息
    • String resID:资源的id
    • int state:资源的状态码
    • String version:资源的版本
    • String diffUrl:增量包地址
    • String diffMd5:增量包的md5值
    • String fullUrl:全量包地址
    • String fullMd5:全量包的md5值
    • String userData:用户的自定义数据
  • VersionCheckResponseData :请求返回数据字段的的Model,包含appinfos
    • List<ResponseResInfo> resInfos:返回的资源信息数据数据
  • VersionCheckResponseModel:请求返回数据的Model
    • int code:返回的result code
    • VersionCheckResponseData data:返回的data数据
    • String errMsg:错误信息,可选
  • RequestResInfo:资源的id和版本信息
    • String resID:资源的id
    • String resVersion:资源的版本
  • AppInfo:native应用的id和版本信息以及请求的资源的信息等
    • String version:协议版本号
    • String appID:native应用的ID
    • String appVersion:native应用的版本号
    • String platform:平台信息,一般为android,小写
    • boolean isDiff:是否需要做diff,默认false,表示不需要
    • boolean autoFill:响应是否需要自动填充本次请求中没有请求的资源信息,默认false,表示不需要
    • List<RequestResInfo> resInfos:请求的资源信息
    • String userData:用户自定义数据
  • OnResponseListener:开放给用户的解析响应数据前的接口
    • byte[] onResponse(byte[] result):处理一下result,返回一个处理后的结果

对外接口

  • VersionCheckResponseModel checkVersion(String url, AppInfo appInfo, Map<String, String> extraHeaders, OnResponseListener onResponseListener):根据输入的VersionCheckInfo中的url、资源等信息进行网络请求,检测版本,因为可能包含一些错误信息,所以包装了一个Model。同步接口。
    • String url:去哪里检查更新
    • AppInfo appInfo:nativeApp的id和版本信息以及请求资源的信息的信息
    • Map<String, String> extraHeaders:需要携带的额外包头
    • VersionCheckRequestModel versionCheckRequestModel:用于版本检测的数据
    • OnResponseListener onResponseListener:可以在回调前进行服务器返回数据的解密干预
  • List<ResponseResInfo> getVersionInfo(String jsonStr):根据传入的版本检测结果字符串解析出资源的版本信息,因为可以同时检测多个资源,故返回是一个列表