MeetingKit 提供了灵活的界面定制能力,允许第三方开发者根据业务需求显示或隐藏特定功能、自定义底部工具栏按钮以及重写部分界面样式。本文档详细介绍了主要的界面定制方式。
通过 setFeatureVisible 方法可以动态显示或隐藏特定功能模块。
使用示例
提示
请在 uiMeetingKit.createClient()
之前调用此方法
import { uiMeetingKit } from '@xylink/meetingkit';
uiMeetingKit.setFeatureVisible({
enableIM: false // 隐藏聊天功能
});
支持隐藏的功能键名
功能键名 | 说明 | 默认值 | 备注 |
enablePip | 画中画 | true | |
enableVirtualBackground | 虚拟背景 | false | |
enableIM | 聊天 | true | 公有云暂不支持,需手动设置为false |
enableWhiteboard | 白板 | true | |
enableAnnotation | 批注 | true | |
enableVersionInfo | 显示版本信息 | true | |
enableShareContent | 分享内容 | true | |
enableInvite | 邀请 | true | |
enableConferenceLink | 会议链接 | true |
MeetingKit SDK 提供了灵活的底部工具栏自定义能力,允许开发者完全掌控会议底部按钮的显示、行为和外观。通过自定义配置,可以:
1. 添加新功能按钮 - 扩展会议功能,集成业务特定操作
2. 修改现有按钮 - 调整默认按钮的行为、样式或显示条件
3. 隐藏不需要的按钮 - 简化界面,聚焦核心功能
4. 重新排序按钮 - 根据使用频率和重要性调整按钮位置
5. 条件性显示 - 基于用户角色、会议状态等条件动态显示/隐藏按钮
通过向 XYMeetingKitComp 组件的 footerCustomButtons 参数传递配置数组,即可实现底部按钮的自定义配置(当前仅支持PC端)。
1、了解默认按钮配置
2、键名使用原则
import { XYMeetingKitComp } from '@xylink/meetingkit';
<XYMeetingKitComp
visible={visible}
footerCustomButtons={[]}
/>
export interface XYCustomButtonConfig {
key: string; // 按钮唯一标识符(必需),使用已存在的 key 值会覆盖默认按钮配置
label?: string | ReactNode; // 按钮显示文字
icon?: string | ReactNode; // 按钮图标
position?: XYButtonPosition; // 按钮位置:'left' | 'middle' | 'right'
className?: string; // 自定义CSS类名
order?: number; // 显示顺序(数值越小越靠前)
show?: boolean | (() => boolean); // 显示条件(布尔值或函数)
priority?: XYButtonPriority; // 隐藏优先级:MUST_SHOW | HIGH | MEDIUM | LOW
defaultHidden?: boolean; // 是否默认隐藏在"更多"菜单中
closeParentDialog?: boolean; // 点击后是否关闭父级弹窗
popover?: XYPopoverProps; // 气泡弹窗配置
onClick?: (context?: any) => void | Promise<void>; // 点击回调函数
component?: React.ComponentType<any>; // 自定义React组件
}
1、左侧区域按钮
左侧区域放置最核心的会议控制功能,这些按钮通常具有最高优先级
lable | 键名(key) | 顺序(order) | 显示条件(show) |
静音/取消静音 |
| 1 | 始终显示 |
开启视频/关闭视频 |
| 2 | 始终显示 |
2、中间区域按钮
中间区域包含主要的会议功能和工具按钮,按优先级和功能分组
lable | 键名 (key) | 顺序(order) | 隐藏优先级(priority) | 显示条件(show) |
共享 |
| 1 | HIGH | 非移动端 |
会议录制 |
| 2 | MEDIUM | 非移动端 |
邀请 |
| 3 | LOW | 非移动端 |
参会者(主持会议) |
| 4 | HIGH | 始终显示 |
窗口布局 |
| 5 | MEDIUM | 非移动端 |
开启字幕 |
| 6 | LOW | 非移动端 |
白板 |
| 7 | MEDIUM | 非移动端 |
批注 |
| 8 | LOW | 非移动端 |
聊天 |
| 9 | MEDIUM | 非移动端 |
设置 |
| 10 | LOW | 非移动端 |
3、右侧区域按钮
右侧区域放置重要的操作按钮,通常是会议的关键操作
lable | 键名 (key) | 顺序(order) | 显示条件(show) |
结束 |
| 1 | 非移动端 |
添加自定义按钮
import { XYMeetingKitComp } from '@xylink/meetingkit';
const customButtons = [
{
key: 'customer-support',
label: '客服支持',
icon: <SupportIcon />,
position: XYButtonPosition.MIDDLE,
order: -1,
priority: XYButtonPriority.MEDIUM,
onClick:()=>{}
},
{
key: 'feedback',
label: '反馈',
icon: <FeedbackIcon />,
position: XYButtonPosition.MIDDLE,
order: -1,
priority: XYButtonPriority.LOW,
className: 'custom-feedback-btn',
onClick: ()=>{}
}
];
<XYMeetingKitComp
footerCustomButtons={customButtons}
// 其他配置...
/>
默认按钮 | 自定义按钮 |
通过调用setLocale设置MeetingKit国际化语言
import { uiMeetingKit } from '@xylink/meetingkit';
// 设置界面语言为英文
uiMeetingKit.setLocale('en-US');
// 设置界面语言为中文
uiMeetingKit.setLocale('zh-CN');
// 设置界面语言为繁体
uiMeetingKit.setLocale('zh_TW');
英文 | 繁体 |