Skip to content

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;

参数说明

参数名类型必传描述
optionsSUDOPGameURLOptions *包含远端 url、版本号 versionappGameID 以及校验标识 fid 的对象。
completionSUDOPGameOperationCompletion异步流程完成后的回调。成功时,游戏逻辑已在后台运行至首屏就绪状态。

返回值

返回一个遵循 id<SUDOPGameTask> 协议的对象。开发者可以通过此对象取消整个流水线任务,这在用户中途退出下载页面时非常有用。


运行行为

  1. 缓存策略优先:SDK 检查本地是否存在匹配 options.appGameIDoptions.version 的可用资源。
  2. 异步下载与校验:若无缓存,则启动下载,并严格根据 options.fid 进行完整性校验。
  3. 深度预热:校验通过后,自动解压并进入预启动(Pre-start)阶段。此时游戏引擎开始工作,处理首屏逻辑和网络连接。
  4. 无缝衔接:当 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 资源。