tt.setImRankDataInOpenContext
基础库 2.74.0 开始支持本方法,这是一个异步方法。
在关键的游戏场景,设置写入用户的排行榜数据(游戏成绩信息),该数据会上传到服务端,该方法设置的数据与tt.setImRankData同源,区别在于该方法需要在开放数据域中使用,请访问 开放数据域能力介绍 进行通信
前提条件 | 无 |
业务背景 | 无 |
使用限制 | 抖音&抖 lite 23.4.0 版本后支持 |
注意事项 | 字段解释 |
相关教程 | 无 |
语法
tt.setImRankDataInOpenContext(options)
参数说明
options 为 object 类型,属性如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|---|
extra | string | 否 | 预留字段 | 2.74.0 | |
priority | number | 0 | 否 | 判断权重,仅当 dataType 为 1 时有效。 当 dataType为1时,需要给每个 value 传对应的权重,如传入 value 为白银,priority为 2,则白银的权重为 2,传入value为黄金,priority为 3,则黄金的权重为3,高于白银,届时生成的榜单,黄金会排在白银前面 | 2.74.0 |
zoneId | string | default | 否 | 排行榜分区标识,取值可以是 'default' 或 'test' 或其他开发者自定义字符串。'default'表示为默认的线上分区,不同分区的排行榜数据存在数据隔离,如 zoneId='test' 设置的数据不会影响通过 zoneId='default' 的排行榜,可用于测试环境。目前每个小游戏除了 default 和 test, 最多可支持 10 个分区(未包括默认的线上分区) | 2.74.0 |
value | string | 是 | 展示出来的数值,dataType == 0 时只能传正数的字符串,否则会报错 value为具体的值,若dataType为0,请传入数字(eg:103、105); 若dataType为1,则传入字符串(eg:青铜、白银) | 2.74.0 | |
dataType | number | 是 | 0:数字类型 、 1:枚举类型 dataType:数字类型(0)往往适用于游戏的通关分数(103分、105分),枚举类型(1)适用于段位信息(青铜、白银); | 2.74.0 | |
success | function | 否 | 接口调用成功的回调函数 | 2.74.0 | |
fail | function | 否 | 接口调用失败的回调函数 | 2.74.0 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | 2.74.0 |
回调成功
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | "setImRankData:ok" | 2.74.0 |
回调失败
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | "setImRankData:fail" + 详细错误信息 | 2.74.0 |
错误码
代码示例
【代码示例1】一个跑酷游戏,想要对用户的跑酷分数做排序
tt.setImRankDataInOpenContext({ dataType: 0, //成绩为数字类型 value: "999999", //该用户得了999999分 priority: 0, //dataType为数字类型,不需要权重,直接传0 extra: "extra", success(res) { console.log(`setImRankDataInOpenContext success res: ${res}`); }, fail(res) { console.log(`setImRankDataInOpenContext fail res: ${res.errMsg}`); }, });
【代码示例2】一个 moba 游戏,想要对用户的段位进行排序
tt.setImRankDataInOpenContext({ dataType: 1, //成绩为枚举类型,因为段位不是一个数字 value: "秩序白银", //该用户段位为白银 priority: 2, //dataType为枚举类型,需要权重,该游戏排序为 青铜(1)、白银(2)、黄金(3)、王者(4),因此此处传2 extra: "extra", success(res) { console.log(`setImRankDataInOpenContext success res: ${res}`); }, fail(res) { console.log(`setImRankDataInOpenContext fail res: ${res.errMsg}`); }, });