跳到主要内容

小游戏管理

1. 游戏启动参数设置​

初始化游戏启动参数​

接口原型

func setGameStartOptions(options: [String: Any], completion: @escaping (HostRuntimeError?) -> Void)

参数说明

参数数据类型必填属性说明
LAUNCH_KEYString是游戏启动项,支持游戏列表启动项,扫码启动项和最近启动项三种。
USER_IDString是游戏用户
CUSTOM_SCRIPT_FILES[String]否js 脚本文件列表
CUSTOM_SCRIPT_CONTENTS[String]否Javascript 文本
ENABLE_VCONSOLEBool否开启 vConsole, 更改开启或关闭需重启游戏,默认值为 false
ENABLE_INSPECTORBool否开启 Safari DevTools 调试, 默认值为 false
INSPECTOR_WAIT_FOR_INSPECTBool否在启动时等待 DevTools 连接, 默认值为 false
ENABLE_DOMAIN_WHITELISTBool否开启合法域名白名单,默认值为 false
DOMAIN_WHITELIST_REQUEST[String]否request 合法域名, 以 https:// 开头, 可填写 300 个域名
DOMAIN_WHITELIST_SOCKET[String]否socket 合法域名, 以 wss:// 开头, 可填写 200 个域名
DOMAIN_WHITELIST_UDP[String]否udp 合法域名, 以 udp:// 开头, 可填写 200 个域名。注:经 DNS 解析得到的 ip 也能通过白名单
DOMAIN_WHITELIST_TCP[String]否tcp 合法域名, 以 tcp:// 开头, 可填写 200 个域名。注:经 DNS 解析得到的 ip 也能通过白名单
DOMAIN_WHITELIST_UPLOAD_FILE[String]否uploadFile 合法域名, 以 https:// 开头, 可填写 200 个域名
DOMAIN_WHITELIST_DOWNLOAD_FILE[String]否downloadFile 合法域名, 以 https:// 开头, 可填写 200 个域名
ENABLE_REPORT_MEMORYboolean否统计 memory 信息, 默认值为 false
ENABLE_REPORT_CPUboolean否统计 cpu 信息, 默认值为 false
ENABLE_REPORT_FPSboolean否统计 帧率相关 信息,包含 fps、jank 和 bigJank,默认值为 false
SPLASH_GAME_TITLEString否替换 Splash 页面游戏标题
SPLASH_ICON_URLString否替换 Splash 页面游戏图标
SHOW_MENU_EXPLORE_BTNBool否开启右上角菜单按钮 默认值为 true
SHOW_MENU_LAYOUTBool否开启右上角布局 默认值为 true
ENABLE_TRANSPARENT_MODEBool否开启游戏透明背景 默认值为 false

代码示例

func setGameStartOptions() {
if let gameHandle {
var options: [String: Any] = [
TJConstants.LAUNCH_KEY: launchKey,
TJConstants.USER_ID: "gust",
TJConstants.ENABLE_VCONSOLE: true,
]

gameHandle.setGameStartOptions(options: options) { error in
guard error == nil else {
return
}
}
}
}

游戏启动参数 LAUNCH_KEY 说明​

目前,游戏支持三种启动方式:游戏列表启动、二维码扫码启动和最近游玩列表启动。

  • 游戏列表启动:在游戏列表接口返回的对象中包含有 launchKey 字段,该字段需要在启动游戏时作为启动参数传入给 LAUNCH_KEY。
    • launchKey: 67da9d2961b25a25faf0b143
  • 二维码扫码启动:扫描二维码的结果作为启动参数传入给 LAUNCH_KEY。
    • 二维码扫码结果: https://minihost.tuanjie.cn/api/game_app/67da9d2961b25a25faf0b143/temp_session/a0f06587-3def-4a3a-95b2-89286bc325fa/start
  • 最近游玩列表启动:最近游玩对象中同样包含有 launchKey 字段,该字段也是作为启动参数传入给 LAUNCH_KEY。具体参考 最近游玩列表
    • 游戏列表启动时 launchKey: 67da9d2961b25a25faf0b143
    • 扫码体验启动时 launchKey: 67da9d2961b25a25faf0b143:67dcc8227ae013b09d23ad23

2. 开始游戏​

加载、编译游戏资源,游戏界面可见但不可交互,宿主状态转为 RUNNING。

接口原型

func start(onShowMsg: String, completion: @escaping (Error?) -> Void)

参数说明

参数数据类型必填属性说明
onShowMsgString否显示字符串
completion(Error?) -> Void否开始后回调

3. 运行/恢复游戏​

游戏可交互或在 app 切换至前台时恢复运行,宿主状态转为 PLAYING。

接口原型

func play()

4. 暂停游戏​

暂停游戏,宿主状态转为 RUNNING。

接口原型

func pause()

5. 结束游戏​

结束游戏,宿主状态转为 WAITING。

接口原型

func stop()

6. 设置宿主首帧渲染监听​

提供宿主首帧渲染后的回调

接口原型

func setOnFirstFrameRenderedListener(callback: @escaping () -> Void)

参数说明

参数数据类型必填属性说明
callback() -> Void是首帧回调

7. 设置宿主游戏包下载回调​

提供宿主游戏包下载的回调机制,此回调仅会在游戏包首次被下载时触发,若仅是读取缓存中的游戏包,则不会触发该回调。

接口原型

func setOnGamePackageDownloadListener(
onStart: @escaping () -> Void,
onProgress: @escaping (Double, Int64, Int64) -> Void,
onSuccess: @escaping () -> Void,
onFailure: @escaping (Error?) -> Void)

参数说明

参数数据类型必填属性说明
onStart() -> Void是游戏包开始下载回调
onProgress(progress: Double, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) -> Void是游戏包下载进度回调
- progress: 下载进度
- totalBytesWritten: 已下载大小
- totalBytesExpectedToWrite: 文件大小
onSuccess() -> Void是游戏包下载成功回调
onFailure(Error?) -> Void是游戏包下载失败回调

8.设置宿主游戏改变屏幕方向监听​

接口原型

func setOnGameChangeOrientationListener(
callback: @escaping (UIInterfaceOrientation, @escaping (Bool) -> Void)

参数说明

参数数据类型必填属性说明
callback(UIInterfaceOrientation, @escaping (Bool) -> Void是方向变化回调