启动云游戏
接口介绍
CloudApp的静态方法isSupport见获取当前环境是否满足SDK运行章节
if(CloudApp.isSupport()) { const cloudApp = new CloudApp(containerId, params); }
功能描述
开启云游戏。
参数介绍
@param {string} containerId:渲染游戏视图的DOM元素id,必选
@param {object} params:启动相关配置,必选,详见表1
参数 |
是否必选 |
参数类型 |
描述 |
约束 |
---|---|---|---|---|
ip |
是 |
String |
接入游戏使用的IP地址,即云手游服务器的EIP 可以通过“查询云手机详情”API获取,即响应消息中“public_ip”参数的取值。 说明:
如果对云手游服务器的EIP配置了域名,则使用域名代替EIP。 |
非空 |
port |
是 |
String |
接入游戏使用的端口 可以通过“查询云手机详情”API获取,即响应消息中“access_port”参数的取值。 |
非空 |
connect_uri |
否 |
String |
默认值为${ip}:${port} 如果业务有域名规划,可以在这里设置独立的连接uri 20.5.0-r1版本新增 |
- |
package_name |
是 |
String |
要启动的游戏包名 |
非空 |
launcher_activity |
是 |
String |
要启动的游戏启动页名 |
非空 说明:20.6.0版本之后可以为空 |
app_id |
是 |
String |
云游戏唯一id |
32位长度 |
session_id |
是 |
String |
用户本次接入游戏的会话id |
32位长度 |
game_timeout |
是 |
String |
用户玩游戏时home的时长,单位是秒 |
非空 |
available_playtime |
是 |
String |
用户可以玩游戏的时长,单位是秒 |
大于等于0 0表示不启用该功能。 |
ticket |
是 |
String |
256位随机数 |
非空 |
aes_key |
是 |
String |
对称密钥,32位16进制字符串 |
32位长度 |
auth_ts |
是 |
String |
验签使用的时间戳 |
非空 |
token |
是 |
String |
玩家登录云端游戏的账号信息 |
非空 |
input_options |
否 |
Object |
用户支持外设的配置,默认为null,此时不支持鼠标键盘操作游戏,说明见表2,示例见调用示例中的inputOptions变量 |
- |
touch_timeout |
否 |
String |
无操作超时的时长,单位是秒 说明:20.6.0版本新增此参数 |
大于等于0 0表示不开启该功能 说明:20.6.0版本约束为大于等于120 |
user_id |
否 |
String |
备用参数。 说明:20.6.0版本新增此参数 |
- |
auto_rotate |
否 |
Boolean |
是否根据真机方向和游戏方向自适应旋转游戏画面 说明: 20.7.0版本新增此参数 若该参数设置为true,将根据真机方向和游戏方向自适应旋转显示游戏画面,而不跟随系统方向显示。 旋转后,containerId对应的DOM的宽高为浏览器可视区的宽高减去containerId父节点left/top值。 |
旋转后,containerId对应的DOM相对于原位置偏移,所以其外围不能显示其他内容,否则会被覆盖。 containerId对应的DOM须在首屏。 |
remote_ime |
否 |
Boolean |
是否使用真机输入法 说明:20.12.0版本新增此参数 |
- |
参数 |
是否必选 |
参数类型 |
描述 |
约束 |
---|---|---|---|---|
${key} |
否 |
Object |
除WASD按键外其他按键对应屏幕的触控位置及滑动半径,相对于游戏视图左上角的偏移量百分比值,{left: 0.01, top: 0.09},如调用示例示例代码中inputOptions.keyboard的j,k,l配置项,表示按j键时触发屏幕按压 |
不能为w、a、s、d,${key}忽略大小写 |
wasd |
否 |
Object |
方向键对应屏幕的触控位置及滑动半径,相对于游戏视图左上角的偏移量百分比值,{left: 0.01, top: 0.09, radius: 0.1},固定使用键盘w、a、s、d键触发上、左、下、右 |
wasd忽略大小写 |
调用示例
以启动王者荣耀为例(要保证页面已经存在id为game-container的DOM元素),启动云游戏:
let inputOptions = { keyboard: { wasd: { left: 0.14, top: 0.79, radius: 0.3 }, j: { left: 0.58, top: 0.892 }, k: { left: 0.652, top: 0.892 }, l: { left: 0.742, top: 0.875 } } }; let session_id = "123e7654e89b12d3a412345655440000"; // 用户业务后台生成 let params = { ip: "117.3.111.4", port: "12345", connect_uri: "xxx.com:12345/abc", package_name: "com.tencent.tmgp.sgame", launcher_activity: "com.tencent.tmgp.sgame.SGameActivity", app_id: "123e7654e89b12d3a412345655440000", session_id: sessionId, game_timeout: "60", available_playtime: "6000", ticket: "123e7654e89b12d3a412345655440000123e7654e89b12d3a412345655440000123e7654e89b12d3a412345655440000123e7654e89b12d3a412345655440000123e7654e89b12d3a412345655440000123e7654e89b12d3a412345655440000123e7654e89b12d3a412345655440000123e7654e89b12d3a412345655440000", aes_key: "36728337b89f22122af4a6e08bb1e7c0", auth_ts: "123456789", token: "user_token", input_options: inputOptions }; let cloudapp = new CloudApp("game-container", params);
