界面配置json说明
会议中的界面,界面上的部分元素是通过config接口进行自定义。可以自定义的界面元素如下:
- 会议窗口名称(仅针对windows平台)
会议开始后,在Windows任务栏上会生成一个会议的图标,鼠标指向该图标时会显示会议的缩略窗口,该窗口的名称可以自定义。
- 会议信息页面点击复制会议详情的内容
会议链接的域名前缀默认是https://bmeeting.huaweicloud.com/(如https://bmeeting.huaweicloud.com/#/j/982989574),如果入会Portal是第三方自己开发的,会议信息页面点击复制会议详情按钮后,会议详情内容需要用户自定义。
- 会控按钮
config接口参数描述
参数 |
是否必须 |
类型 |
描述 |
---|---|---|---|
uiConfig |
是 |
string |
Json对象字符串"{"frame":object}", object对象有格式要求,若不匹配则配置不生效。详细规则见下表2、表3、表4、表5。 |
key |
value类型 |
描述 |
---|---|---|
name |
string |
会议窗口名称。如图1中的窗口名称(MyApp)。 |
confMenu |
object |
key |
value类型 |
描述 |
---|---|---|
toolBar |
object |
|
titleBar |
object |
会议窗口上的标题栏配置对象。如图2中的会议信息。 |
statusBar |
object |
会议窗口左上角的状态栏配置对象。如图5中的按钮。 |
key |
value类型 |
描述 |
---|---|---|
button |
object[] |
|
customButton |
object[] |
key |
value类型 |
描述 |
---|---|---|
button |
object[] |
会议窗口左上角的状态栏上的按钮配置对象。如图5中的按钮。 |
key |
value类型 |
描述 |
---|---|---|
confDetail |
object[] |
如图2中的会议信息 |
key |
value类型 |
描述 |
---|---|---|
button |
object[] |
会议信息窗口上的按钮配置对象。 |
key |
value类型 |
描述 |
---|---|---|
buttonId |
string |
按钮的唯一标识。具体buttonId与按钮的对应关系见表9 按钮buttonId介绍。 |
showAsAction |
string |
是否显示。只有2个取值,“never”:不显示,“ifRoom”:显示。 |
isCustomizedClick |
bool |
是否点击注入。true:点击注入,用户点击按钮时发送通知消息,SDK不做点击响应处理。 |
key |
value类型 |
描述 |
---|---|---|
buttonId |
string |
第三方自定义的按钮id。如“customMenu”。 |
title |
string |
第三方自定义按钮的显示的名称。如“自定义按钮”。 |
buttonImg |
string |
第三方自定义按钮的图标路径,使用绝对路径。如“to/path/image.svg”,支持svg/png等格式 注:需要UTF8编码。 |
buttonPos |
int |
第三方自定义按钮的位置。0:工具栏更多菜单,1:底部工具栏,2:共享工具栏 |
按钮名称 |
按钮id |
说明 |
---|---|---|
麦克风 |
"microphone" |
可隐藏 |
扬声器 |
"speaker" |
可隐藏 |
摄像头 |
"camera" |
可隐藏 |
邀请 |
"invite" |
可隐藏,可注入 |
离开 |
"leave" |
可隐藏,可注入 |
共享 |
"share" |
可隐藏,可注入 |
与会者 |
"attendee" |
可隐藏,可注入 |
反馈 |
"feedback" |
可隐藏,可注入 |
标注 |
"annotation" |
可隐藏(仅对win平台生效) |
授予远程控制 |
"remote_control" |
可隐藏(仅对win平台生效) |
停止共享 |
"stop_share" |
可隐藏 |
聊天 |
"chat" |
可隐藏,可注入 |
字幕功能:开启字幕、字幕翻译 |
"subtitle" |
可隐藏 |
安全 |
"security" |
可隐藏 |
网络检测 |
"network_detection" |
可隐藏 |
允许与会者解除静音 |
"allow_unmute" |
可隐藏(仅对win平台生效) |
打开/关闭双屏模式 |
"dual_screen" |
可隐藏(仅对win平台生效) |
录制 |
"record" |
可隐藏 |
复制会议信息 |
"copy_conf_info" |
可注入 |
与会者详情 |
"participant_detail" |
可注入(mac无需注入) |
复制观众链接 |
"copy_audience_conf_info" |
可注入 |
按照上面的定义,完整的可定制的界面元素的json格式配置项如下:
{ "frame": { "name": "demo", "confMenu": { "titleBar": { "confDetail": { "button": [ { "buttonId": "copy_conf_info", "isCustomizedClick": true } ] } }, "statusBar": { "button": [ { "buttonId": "record", "showAsAction": "never" } ] }, "toolBar": { "customButton": [ { "buttonId": "customMenu", "title": "自定义按钮", "buttonPos": 1, "buttonImg": "imagePath", "subMenu": "" }, { "buttonId": "customMore", "title": "自定义更多", "buttonPos": 0, "buttonImg": "imagePath" }, { "buttonId": "customShare", "title": "自定义共享", "buttonPos": 2, "buttonImg": "imagePath" } ], "button": [ { "buttonId": "microphone", "showAsAction": "never" }, { "buttonId": "speaker", "showAsAction": "never" }, { "buttonId": "camera", "showAsAction": "never" }, { "buttonId": "invite", "showAsAction": "never", "isCustomizedClick": true }, { "buttonId": "leave", "showAsAction": "never", "isCustomizedClick": true }, { "buttonId": "attendee", "showAsAction": "never", "isCustomizedClick": true, "dialogPos": "center" }, { "buttonId": "share", "showAsAction": "never", "isCustomizedClick": true }, { "buttonId": "chat", "showAsAction": "never", "isCustomizedClick": true, "dialogPos": "center" }, { "buttonId": "annotation", "showAsAction": "never" }, { "buttonId": "stop_share", "showAsAction": "never" }, { "buttonId": "feedback", "showAsAction": "ifRoom", "isCustomizedClick": true }, { "buttonId": "dual_screen", "showAsAction": "never" }, { "buttonId": "remote_control", "showAsAction": "never" }, { "buttonId": "record", "showAsAction": "never" }, { "buttonId": "subtitle", "showAsAction": "never" }, { "buttonId": "security", "showAsAction": "never" }, { "buttonId": "network_detection", "showAsAction": "never" }, { "buttonId": "vote", "showAsAction": "never" } ] } } } }
由于函数config的uiConfig是string类型,需要把上述的json转换成字符串形式,请参考下面的示例代码。
示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/** * UI界面配置 */ async setInvite(){ let param = { "frame": { "confMenu": { "toolBar": { "button": [{ "buttonId": "invite", "showAsAction": "ifRoom", "isCustomizedClick": true }] } } } } const apiService = new ApiService(); // json转换成string传入 let setResult = await apiService.config(JSON.stringify(param)); if(setResult.ret != 0){ window.electron.ipcRenderer.send("show-error-alert", "config error = " + setResult.ret); } } |