会议扩展性

更新时间: 2026/01/06 15:49:38

本文介绍如何利用网易会议组件(NEMeetingKit)的扩展性特性,通过透传字段实现业务定制化需求,帮助您在现有接口基础上扩展更多功能。

透传机制

NEMeetingKit 通过透传字段提供上层业务相应的扩展能力,使您能够在不修改 SDK 的情况下实现自定义业务逻辑。透传字段包括:

以上透传字段允许在应用层传入自定义 JSON 数据,在会议流程中的不同环节被解析和使用,实现个性化功能。

在使用透传字段实现业务扩展时,请注意以下数据结构设计实践:

  • 层次化的 JSON 结构:将不同类型的数据按模块组织,避免扁平化结构。
  • 使用命名空间:使用前缀或嵌套对象来区分不同功能模块的数据。
  • 版本控制:在数据中包含版本号,便于后续兼容性处理。
  • 避免传输敏感信息:透传字段可能在网络传输中被拦截,建议您对敏感数据进行加密后再传输。
  • 使用令牌而非原始凭据:传输短期有效的令牌而非长期凭据
  • 控制数据大小:遵循透传字段的大小限制(extraData 2KB,tag 1KB),建议只传输必要数据,避免冗余。
  • 延迟加载:对非即时需要的大型数据,考虑使用 ID 引用并在需要时再加载。
  • 异常处理:透传数据的解析应当包含异常处理,以防数据格式不符合预期导致应用崩溃。

设置会议透传字段 (extraData)

会议透传字段 extraData 支持在创建会议时传入自定义数据,最大支持 2KB 的字符串。

Objective-C// 创建会议参数
NEStartMeetingParams *params = [[NEStartMeetingParams alloc] init];

// 创建自定义数据字典
NSDictionary *extraDataDict = @{
    @"businessId": @"10086",
    @"projectName": @"项目方案讨论",
    @"deptCode": @"D2023",
    @"priority": @"high"
};

// 将字典转换为 JSON 字符串
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:extraDataDict
                                                   options:0
                                                     error:&error];
if (error) {
    NSLog(@"JSON 序列化失败: %@", error.localizedDescription);
} else {
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    params.extraData = jsonString;
}

// 设置其他会议参数
params.displayName = @"张三";

// 开始会议
[[NEMeetingKit getInstance].getMeetingService startMeeting:params opts:options callback:^(NSInteger resultCode, NSString *resultMsg, id result) {}];

设置成员透传字段 (tag)

成员透传字段 tag 用于标识参会者的身份信息或附加属性,最大支持 1024 字节。这些信息将在会议中与用户关联,并可用于自定义处理逻辑。

Objective-C// 创建会议参数
NEJoinMeetingParams meetingParams = new NEJoinMeetingParams();
// 创建用户标签字典
NSDictionary *tagDict = @{
    @"userId": @"U10010",
    @"roleId": @"admin",
    @"orgId": @"headquarters",
    @"title": @"产品经理",
    @"level": @3, // NSNumber 包装基本类型
    
    // 嵌套的权限字典
    @"permissions": @{
        @"canShareScreen": @YES,
        @"canManageMembers": @YES,
        @"canRecordMeeting": @YES,
        @"canEndMeeting": @NO
    }
};

// 将字典转换为 JSON 字符串
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:tagDict
                                                   options:0
                                                     error:&error];
if (error) {
    NSLog(@"JSON 序列化失败: %@", error.localizedDescription);
} else {
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    meetingParams.tag = jsonString;
}

// 设置其他参数
meetingParams.displayName = @"李四";

// 加入会议
[[[NEMeetingKit getInstance] getMeetingService] joinMeeting:meetingParams opts:meetingOptions callback:^(NSInteger resultCode, NSString *resultMsg, id result) {}];

在会议中获取透传数据

在会议进行过程中,您可以通过两种主要方式获取和使用之前设置的透传数据。

您可以随时通过调用 NEMeetingKit 提供的接口来获取当前会议的完整信息,包括透传数据:

Objective-C// 主动查询会议信息
[[NEMeetingKit getInstance].getMeetingService
    getCurrentMeetingInfo:^(NSInteger resultCode, NSString *_Nonnull resultMsg,
                              NEMeetingInfo *_Nonnull info) {
}];

处理透传数据

获取到透传数据后,您可以实现多种定制化功能:

  1. 身份识别与权限控制:根据成员 tag 中的角色信息,动态调整会议中可用的功能。
  2. 业务关联:将会议与您的业务系统关联,例如显示关联的项目信息或客户资料。
  3. 界面定制:基于 extraData 中的配置,调整会议界面的布局或主题。
  4. 行为跟踪:记录特定业务相关的会议行为,用于后续分析或报告生成。
此文档是否对你有帮助?
有帮助
去反馈
  • 透传机制
  • 设置会议透传字段 (extraData)
  • 设置成员透传字段 (tag)
  • 在会议中获取透传数据
  • 处理透传数据