DeltaUpdate.UpdateMgr

更新记录

版本 日期 修改人 修改内容
1.0.0 2020年3月25日 刘剑(281001) 新建文档
1.1.0 2020年4月27日 刘剑(281001) 支持多应用模式
1.2.0 2020年4月29日 蔺浪(510525) 部分异步操作支持中断
1.2.1 2020年6月12日 蔺浪(510525) 更新记录使用表格
1.2.2 2020年8月6日 蔺浪(510525) 更新检查接口回调参数意义修正并注明
UpdateMgr

更新管理器,应用增量更新组件对外的接口。
可以用来获取应用的最新版本信息[服务器]、下载应用版本包、运用应用版本包、设置日志器等。
同时支持多应用模式:主应用+子应用列表,方便多应用场景。

public static UpdateMgr Instance { get; }

简要说明:

  • 更新管理器单例
public string CacheDir { get; set; }

简要说明:

  • 缓存文件路径,下载的应用版本包和版本包记录文件都存在此路径下。
public ILogger Logger { get; set; }

简要说明:

  • 日志器,可设置自定义的日志器。
public AppUpdateCfg AppCfg { get; }

简要说明:

  • 应用更新配置,包括应用编码、当前版本号、服务地址、日志等级等配置项。
public AppVersionInfo AppVerInfo { get; }

简要说明:

  • 应用版本信息,增量更新组件支持多应用模式,即:主应用+子应用列表。
    可以参照中小学虚拟实验播放器的应用架构设计,主程序 + 3D播放器 + VR播放器 + 创编播放器。
    应用版本信息包括:应用版本号、应用名、应用编码、发布号、更新内容、发布状态、安装包下载地址、压缩包下载地址、MD码等。
public void NotifyUpdate();

简要说明:

  • 通知帧调用(通常是主线程来调用,如WFP程序主线程、Unity程序主线程)。更新程序必须要调用此函数,以保证所有回调在主线程完成。

返回值说明

void

public void CheckAppRemoteVer(Action<bool, AppVersionInfo> callback)

简要说明:

  • 检查主应用的最新版本信息,适用于单应用模式。
  • 指的是整个应用架构只有一个应用程序的情形下使用
  • 而不是“我只需要请求一个应用程序”情形下使用

参数:

参数名 类型 说明
callback Action<bool, AppVersionInfo> 回调函数(数据是否有效?, 应用版本信息)

返回值说明

void

public void CheckAppRemoteVer(string appCode, string appVersion, Action<bool, AppVersionDesc> callback)

简要说明:

  • 检查指定编码应用的最新版本信息,适用于其它模块独立调用。

参数:

参数名 类型 说明
appCode string 应用编码
appVersion string 应用版本号
callback Action<bool, AppVersionDesc> 回调函数(数据是否有效?, 应用版本描述数据)

返回值说明

void

public void CheckMultiAppRemoteVer(ICollection<AppUpdateReqItem> subApps, Action<bool, Dictionary<string, AppVersionInfo>> callback)

简要说明:

  • 检查多应用的最新版本信息,适用于多应用模式。

参数:

参数名 类型 说明
subApps ICollection<AppUpdateReqItem> 子应用列表,需要传入编码、本地版本号、简写
callback Action<bool, Dictionary<string, AppVersionInfo>> 回调函数(应用版本信息(主/子应用其一)是否有效?, 应用版本描述数据)

返回值说明

void

public void DownloadRemoteApp(int timeOut, Action<float> progressCallback, Action<int, string> completeCallback)

简要说明:

  • 下载主应用最新版本包(安裝包/Zip包),适用于单应用模式。
    下载完成回调结果码说明:
结果码 说明
0 成功
-1 未请求服务器版本
-2 当前已是最新版本
-3 请求数据无效(服务器返回安装包/Zip包地址/MD5为空)
-4 下载文件失败

参数:

参数名 类型 说明
timeOut int 超时(S)
progressCallback Action<float> 下载进度回调(下载进度)
completeCallback Action<int, string> 下载完成回调(结果码,文件路径 & 错误信息)

返回值说明

void

public void ApplyRemoteApp(int pkgType, string pkgVersion, Action<float> progressCallback, Action<int, string> completeCallback)

简要说明:

  • 运用主应用最新版本包,适用于单应用模式。
    完成回调结果码说明:
结果码 说明
0 运用exe成功
1 运用zip成功
-1 参数错误
-2 运用失败

参数:

参数名 类型 说明
pkgType int 包类型(1-exe,2-zip)
pkgVersion string 颗粒文件路径
progressCallback Action<float> 进度回调
completeCallback Action<int, string> 完成回调(结果码,错误信息)

返回值说明

void

public void UpdateAppFromRemote(string appCode, string appDir, int timeOut, int option, Action<float> progressCallback, Action<int, string> completeCallback)

简要说明:

  • 从更新服务器更新App到本地,适用于多应用模式。
    完成回调结果码说明:
结果码 说明
0 已经是最新版本
1 通过zip更新成功
2 通过exe启动更新
-1 参数无效
-2 请求数据无效
-3 文件下载失败
-4 运用更新包失败

参数:

参数名 类型 说明
appCode string 应用编码
appDir string 本地应用路径
timeOut int 网络超时
option int 更新选项: 0-通过zip或exe包更新;1-只通过zip包进行更新;2-只通过exe包进行更新
progressCallback Action<float> 进度回调
completeCallback Action<int, string> 完成回调(结果码 & 错误信息)

返回值说明

void

public void DownloadPkgUnZip(string url, string md5, int timeOut, string unZipDir, Action<float> progressCallback, Action<int, string> completeCallback)

简要说明:

  • 从更新服务器下载文件包并解压到指定目录,适用于其它模块独立调用。
    完成回调结果码说明:
结果码 说明
0 成功
-1 参数无效
-2 下载文件失败
-3 解压文件失败

参数:

参数名 类型 说明
url string 下载地址
md5 string Md5校验码[为空不校验]
timeOut int 网络超时
unZipDir string 解压目录
progressCallback Action<float> 进度回调
completeCallback Action<int, string> 完成回调(结果码 & 错误信息)

返回值说明

void

public string DownloadAppFromRemote(string appCode, int timeOut, int option, Action<float> progressCallback, Action<int, string> completeCallback)

简要说明:

  • 从更新服务器下载App更新包。
    完成回调结果码说明:
结果码 说明
0 下载zip成功
1 下载exe成功
-1 参数无效
-2 请求数据无效
-3 文件下载失败

参数:

参数名 类型 说明
appCode string 应用编码
timeOut int 网络超时(S)
option int 选项设置,0:下载zip或exe包;1:只下载zip包;2:只下载exe包
progressCallback Action<float> 进度回调
completeCallback Action<int, string> 完成回调(结果码 & 错误信息)

返回值说明

string:异步操作实例ID,可用于中断操作

public string ApplyAppFromCache(string appCode, string appDir, int option, IEnumerable<string> processes, Action<float> progressCallback, Action<int, string> completeCallback)

简要说明:

  • 从下载缓存中运用更新包到应用目录。
    完成回调结果码说明:
结果码 说明
0 已经是最新版本
1 通过zip更新成功
2 通过exe启动更新
-1 参数无效
-2 更新包不存在
-3 运用更新包失败

参数:

参数名 类型 说明
appCode string 应用编码
appDir string 应用目录
option int 选项设置,0:通过zip或exe包更新[zip优先];1:只通过zip包进行更新;2:只通过exe包进行更新
processes IEnumerable<string> 更新App时需要关闭的进程名集合
progressCallback Action<float> 进度回调
completeCallback Action<int, string> 完成回调(结果码 & 错误信息)

返回值说明

string:异步操作实例ID,可用于中断操作

public bool AbortAsync(string asyncID)

简要说明:

  • 中断异步操作。

参数:

参数名 类型 说明
asyncID string 异步操作ID

返回值说明

bool:是否找到指定ID的异步操作并成功中断操作?