preStartGameWithURLOptions:completion:
预启动游戏(通过远端 URL 配置)
该方法通过指定游戏包的下载地址(URL)开启预启动流程。它是一个全自动的流水线接口:SDK 会根据配置自动判断是否需要下载、校验和解压资源,并在资源就绪后立即在后台初始化运行时环境并执行游戏脚本。
方法声明
objectivec
/**
Pre-start game using remote URL options.
This is a full pipeline: Download -> Verify -> Unzip -> Initialize Runtime -> Execute Script (Background).
@param options Configuration object containing the URL, version, and integrity metadata.
@param completion Called when the pre-start operation finishes.
@return An instance of id<SUDOPGameTask> to track the task.
*/
+ (id<SUDOPGameTask>)preStartGameWithURLOptions:(SUDOPGameURLOptions *)options
completion:(nullable SUDOPGameOperationCompletion)completion;参数说明
| 参数名 | 类型 | 必传 | 描述 |
|---|---|---|---|
| options | SUDOPGameURLOptions * | 是 | 包含远端 url、版本号 version、appGameID 以及校验标识 fid 的对象。 |
| completion | SUDOPGameOperationCompletion | 否 | 异步流程完成后的回调。成功时,游戏逻辑已在后台运行至首屏就绪状态。 |
返回值
返回一个遵循 id<SUDOPGameTask> 协议的对象。开发者可以通过此对象取消整个流水线任务,这在用户中途退出下载页面时非常有用。
运行行为
- 缓存策略优先:SDK 检查本地是否存在匹配
options.appGameID和options.version的可用资源。 - 异步下载与校验:若无缓存,则启动下载,并严格根据
options.fid进行完整性校验。 - 深度预热:校验通过后,自动解压并进入预启动(Pre-start)阶段。此时游戏引擎开始工作,处理首屏逻辑和网络连接。
- 无缝衔接:当
completion触发时,表示游戏已在内存中“热机”完毕。
代码示例
objectivec
SUDOPGameURLOptions *urlOptions = [[SUDOPGameURLOptions alloc] init];
urlOptions.url = @"https://cdn.example.com/games/racer_v3.zip";
urlOptions.appGameID = @"game_racer_001";
urlOptions.version = @"3.0.0";
urlOptions.fid = @"f1234567890abcdef";
[SUDOP preStartGameWithURLOptions:urlOptions
completion:^(id<SUDOPGameHandleProvider> _Nullable provider, NSError * _Nullable error) {
if (!error) {
NSLog(@"通过 URL 预启动成功。用户现在点击‘开始’将获得秒开体验。");
} else {
NSLog(@"预启动失败(网络或校验错误): %@", error);
}
}];注意事项
- 流量成本:由于此方法可能会静默触发大文件下载,请确保在合适的网络环境下调用,或在 UI 上给予用户下载提示。
- 回调时机:由于涉及下载和脚本执行,此接口的
completion回调时间可能较长。 - 资源清理:若预启动成功后用户未进入游戏且离开了相关页面,建议手动调用 Task 的
cancel或相关清理接口,以回收后台运行的游戏实例所占用的 CPU 资源。