# 意见反馈(选接)
# 接口说明
用于在游戏内创建一个用于打开意见反馈页面的按钮,并在点击时跳转至意见反馈页面;管理员可登录《B站开放平台》 (opens new window)后台,进入“玩家反馈”栏目中查看或回复用户提交的内容。
sdkInstance.createFeedbackButton(options);
最低基础库版本要求
当用户的客户端基础库版本过低时,调用 sdkInstance.createFeedbackButton(options) 接口将返回 undefined,并在正式版环境下于控制台输出错误提示(非正式版环境下,以弹窗形式展示),需要游戏客户端对返回值做兼容处理!
# 参数说明
参数说明如下表所示:
| 选项 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| type | string | 否 | text | 按钮类型
|
| text | string | 否 | 意见反馈 | 按钮文本,仅当 type 为 text 时有效 |
| image | string | 否 | -- | 按钮的背景图片,仅当 type 为 image 时有效 |
| style | object | 是 | {} | 按钮样式 |
| style.top | number | 是 | 0 | 按钮左上角纵坐标 |
| style.left | number | 是 | 0 | 按钮左上角横坐标 |
| style.width | number | 否 | 200 | 按钮宽度 |
| style.height | number | 否 | 40 | 按钮高度 |
| style.borderWidth | number | 否 | 0 | 按钮边框宽度 |
| style.borderRadius | number | 否 | 0 | 按钮边框圆角 |
| style.borderColor | string | 否 | #00a1d6 | 按钮边框颜色(hex 颜色代码) |
| style.backgroundColor | string | 否 | #00a1d6 | 按钮背景颜色(hex 颜色代码) |
| style.color | string | 否 | #ffffff | 按钮文本颜色(hex 颜色代码) |
| style.fontSize | number | 否 | 14 | 按钮文本字号 |
| style.textAlign | string | 否 | center | 按钮文本水平居中方式
|
| style.lineHeight | number | 否 | 40 | 按钮文本行高 |
# 返回值说明
调用 sdkInstance.createFeedbackButton(options) 接口,将返回一个用于打开意见反馈页面的按钮实例。具体实例方法如下表所示:
| 方法 | 类型 | 说明 |
|---|---|---|
| show | function | 用于显示意见反馈按钮 |
| hide | function | 用于隐藏意见反馈按钮 |
| destroy | function | 用于销毁意见反馈按钮 |
| onTap | function | 用于绑定意见反馈按钮的点击事件回调函数 |
| offTap | function | 用于注销意见反馈按钮的点击事件回调函数 |
# 特别说明
由于B站的策略限制,打开意见反馈页面的动作无法由游戏原生按钮触发,必须使用上述API创建指定按钮,并在点击时自动跳转。但往往游戏拥有自己的视觉设计体系,而该API创建的按钮并不符合美术需求,遇到这种情况可通过以下两种方式解决:
- 设置
type为text时,将按钮文本、边框颜色及背景颜色均置空,以便创建一个视觉透明的按钮,并利用宽高及横纵坐标将其覆盖在游戏原生按钮上; - 设置
type为image时,将游戏的按钮图片素材作为背景图片。
# 示例代码
注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!
// 创建意见反馈按钮
const feedbackButton = sdkInstance.createFeedbackButton({
type: "text",
text: "意见反馈",
style: {
top: 200,
left: 20,
width: 200,
height: 40,
backgroundColor: "#00a1d6",
color: "#ffffff",
fontSize: 14,
textAlign: "center",
lineHeight: 40
}
});
// 先判断 feedbackButton 是否存在再使用
// 因为当用户的客户端基础库版本过低时,调用 sdkInstance.createFeedbackButton 接口将返回 undefined
if (feedbackButton) {
// 显示意见反馈按钮
feedbackButton.show();
// 隐藏意见反馈按钮
feedbackButton.hide();
// 销毁意见反馈按钮
feedbackButton.destroy();
// 绑定或注销意见反馈按钮的点击事件回调函数
const listener = function(response) {
console.log(response);
};
feedbackButton.onTap(listener);
feedbackButton.offTap(listener);
}