# 游戏圈(选接)
通过游戏圈组件,可以在游戏内为用户提供游戏交流、用户互动、反馈收集等社区能力。
# 创建游戏圈入口
# 接口说明
用于在游戏内创建一个用于打开游戏圈的按钮,并在点击时跳转至游戏圈主页。
sdkInstance.createGameClubButton(options);
最低基础库版本要求
当用户的客户端基础库版本过低时,调用 sdkInstance.createGameClubButton(options) 接口将返回 undefined,并在正式版环境下于控制台输出错误提示(非正式版环境下,以弹窗形式展示),需要游戏客户端对返回值做兼容处理!
# 参数说明
| 选项 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| type | string | 否 | text | 按钮类型
|
| text | string | 否 | -- | 文本按钮的文本,仅当 type 为 text 时有效 |
| icon | string | 否 | -- | 图片按钮的图标,仅当
|
| image | string | 否 | -- | 图片按钮的背景图片,仅当 type 为 image 时有效 |
| style | object | 否 | -- | 按钮样式 |
| style.top | number | 是 | 0 | 按钮左上角纵坐标 |
| style.left | number | 是 | 0 | 按钮左上角横坐标 |
| style.width | number | 是 | 100 | 按钮宽度 |
| style.height | number | 是 | 32 | 按钮高度 |
| style.borderWidth | number | 否 | 0 | 按钮边框宽度 |
| style.borderRadius | number | 否 | 0 | 按钮边框圆角 |
| style.borderColor | string | 否 | #1677ff | 按钮边框颜色,格式为 6 位 16 进制数 |
| style.backgroundColor | string | 否 | #1677ff | 按钮背景颜色,格式为 6 位 16 进制数 |
| style.color | string | 否 | #ffffff | 按钮文本颜色,格式为 6 位 16 进制数 |
| style.fontSize | number | 否 | 12 | 按钮文本字号 |
| style.textAlign | string | 否 | center | 按钮文本水平居中方式
|
| openlink | string | 否 | -- | 游戏圈传参数,进入到指定圈子下;该参数传游戏圈的圈子ID |
# 返回值说明
调用 sdkInstance.createGameClubButton(options) 接口,将返回一个用于打开游戏圈的按钮实例。具体实例方法如下表所示:
| 方法 | 类型 | 说明 |
|---|---|---|
| show | function | 用于显示游戏圈按钮 |
| hide | function | 用于隐藏游戏圈按钮 |
| destroy | function | 用于销毁游戏圈按钮 |
| onTap | function | 用于绑定游戏圈按钮的点击事件回调函数 |
| offTap | function | 用于注销游戏圈按钮的点击事件回调函数 |
# 特别说明
注意,由于支付宝的策略限制,打开游戏圈的动作无法由游戏原生按钮触发,必须使用上述API创建指定按钮,并在点击时自动跳转。但往往游戏拥有自己的视觉设计体系,而该API创建的按钮并不符合美术需求,遇到这种情况可通过以下两种方式解决:
- 设置
type为text时,设置按钮文本、边框颜色及背景颜色,以便符合游戏视觉设计,并利用宽高及横纵坐标将其覆盖在游戏原生按钮上; - 设置
type为image时,将游戏的按钮图片素材作为背景图片,或使用icon图标按钮。
# 示例代码
注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!
// 创建游戏圈按钮
const gameClubButton = sdkInstance.createGameClubButton({
type: "text",
text: "游戏圈",
style: {
top: 376,
left: 40,
width: 100,
height: 32,
backgroundColor: "#1677ff",
borderWidth: 0,
borderColor: "#1677ff",
borderRadius: 0,
color: "#ffffff",
fontSize: 12,
textAlign: "center"
}
});
// 先判断 gameClubButton 是否存在再使用
// 因为当用户的客户端基础库版本过低时,调用 sdkInstance.createGameClubButton 接口将返回 undefined
if (gameClubButton) {
// 显示游戏圈按钮
gameClubButton.show();
// 隐藏游戏圈按钮
gameClubButton.hide();
// 销毁游戏圈按钮
gameClubButton.destroy();
// 添加或移除游戏圈按钮的点击事件监听函数
const listener = function(response) {
console.log(response.code); // 事件响应状态码,为0时表示打开游戏圈成功,其他非0状态码表示打开失败
console.log(response.message); // 打开成功或失败时的相应描述信息
};
gameClubButton.onTap(listener);
gameClubButton.offTap(listener);
}
# 获取用户游戏圈数据
# 接口说明
用于在游戏内获取用户游戏圈数据。
sdkInstance.getGameClubData(options);
最低基础库版本要求
当用户的客户端基础库版本过低时,调用 sdkInstance.getGameClubData(options) 接口将直接触发失败回调函数,并在正式版环境下于控制台输出错误提示(非正式版环境下,以弹窗形式展示)!
# 参数说明
| 选项 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| dataTypeList | object[] | 是 | -- | 需要获取的数据指标对象数组 |
| dataTypeList[n].type | number | 是 | -- | 见下文 type 表格说明 |
| success | function | 否 | -- | 获取成功的回调函数 |
| fail | function | 否 | -- | 获取失败的回调函数 |
| complete | function | 否 | -- | 获取完成的回调函数,成功或失败均会调用 |
# 数据指标 type 说明
| 取值 | 说明 |
|---|---|
| 1 | 加入游戏圈时间,秒级Unix时间戳 |
| 3 | 用户禁言状态;0:正常,1:禁言 |
| 4 | 当天(自然日)点赞贴子数 |
| 5 | 当天(自然日)评论贴子数 |
| 6 | 当天(自然日)发表贴子数 |
| 7 | 当天(自然日)发表视频贴子数 |
| 8 | 当天(自然日)点赞官方贴子数 |
| 9 | 当天(自然日)评论官方贴子数 |
| 10 | 当天(自然日)用户在本圈子访问的时长 |
| 11 | 当天(自然日)用户在本圈子浏览贴子的数量 |
# 返回值说明
| 选项 | 类型 | 说明 |
|---|---|---|
| code | number | 响应状态码,为 0 时表示获取成功,其他非 0 状态码均表示获取失败 |
| data | object / null | 获取成功时返回用户游戏圈数据,失败时返回 null |
| data.dataList | string | GameClubData 数据,见下文 GameClubData 数据结构说明 |
| message | string | 获取成功或失败时的相应描述信息 |
# GameClubData 数据结构
| 选项 | 类型 | 说明 |
|---|---|---|
| dataList | object[] | 游戏圈相关数据的对象数组 |
| dataList[n].dataType | object | 与输入的 dataType 数据指标对象一致 |
| dataList[n].value | number | 不同 type 返回的 value 含义不同,见上文数据指标 type 说明 |
# 示例代码
注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!
// 当用户的客户端基础库版本过低时,调用此接口将直接触发失败回调函数,并在正式版环境下于控制台输出错误提示(非正式版环境下,以弹窗形式展示)
sdkInstance.getGameClubData({
dataTypeList: [
{ type: 1 },
{ type: 3 },
{ type: 4 },
{ type: 5 },
{ type: 6 },
{ type: 7 },
{ type: 8 },
{ type: 9 },
{ type: 10 },
{ type: 11 }
],
success: function(response) {
console.log(response);
},
fail: function(error) {
console.log(error);
},
complete: function(result) {
// do something here...
}
});