Skip to content

preDownloadGame:completion:

预下载游戏(通过 Game ID)

该方法通过游戏唯一标识符(Game ID)异步开启游戏包的下载任务。它会自动处理从云端获取下载地址、校验文件完整性以及存储到本地缓存的过程。通过预下载,可以显著减少用户进入游戏时的等待时间。


方法声明

objectivec
/**
 Pre-download game package using game ID.
 @param gameID The unique identifier of the game.
 @param completion Called when the download task finishes or fails.
 @return An instance of id<SUDOPGameTask> to control or track the task.
 */
+ (id<SUDOPGameTask>)preDownloadGame:(nonnull NSString *)gameID
                                     completion:(nullable SUDOPCompletion)completion;

参数说明

参数名类型必传描述
gameIDNSString *游戏的唯一标识符。
completionSUDOPCompletion任务结束回调。成功时 error 为 nil;失败时 error 包含具体原因。

返回值

返回一个遵循 id<SUDOPGameTask> 协议的对象。开发者可以通过该对象取消任务(cancel)或获取任务唯一标识。


运行行为

  1. 自动鉴权:SDK 内部会首先根据 gameID 获取必要的下载凭证。
  2. 断点续传:SDK 通常支持断点续传逻辑,如果之前下载过部分内容,会从上次位置继续。
  3. 缓存策略:下载完成后,资源会被保存在 SDK 管理的私有缓存目录中,后续 startGame 会优先从缓存加载。

代码示例

objectivec
[SUDOP preDownloadGame:@"game_abc_123" completions:nil];

注意事项

  • 网络环境:建议在调用前判断网络状态,或在回调中处理网络中断导致的错误。
  • 重复触发:如果同一 gameID 的任务正在运行,再次调用可能会返回同一个 Task 实例或直接进入当前任务的监听。
  • 存储空间:请确保设备有足够的磁盘空间,否则下载会因 IO 错误而失败。