群组管理
本文档旨在指导开发者如何使用融云即时通讯 Flutter IMLib SDK 实现创建群组、群组资料设置、踢出群组、退出群组、解散群组、转让群组等功能。
提示
- 此功能从 5.18.0 版本开始支持。
- 针对已经通过原群组功能接口
/group/create.json
创建的群组,默认不支持调用群托管的相关功能接口,需要调用"导入群托管数据"接口,设置群主及群组的默认权限后才能使用。
开通服务
使用此功能前,您须在控制台开通信息托管服务。
群事件监听
群事件监听器直接在 RCIMIWEngine
实例上设置,包含群操作、群信息群成员信息变更、加群申请相关通知、群备注名多端同步、群特别关注多端同步等回调。
您可以直接在引擎实例上设置相应的回调函数,如果不想再接收某个事件,将对应的回调函数设置为 null
即可。
提示
信息托管服务中,群组操作产生的 SDK 通知回调也是一种状态通知行为,无论应用是否实现 SDK 的事件监听,服务端都会对 SDK 进行状态同步,确保本地为最新的数据信息,所以会计入消息的分发、下行数据统计中。
代码示例
Dart
// 获取引擎实例
RCIMIWEngine? engine = await RCIMIWEngine.create(appKey, options);
// 设置群组操作回调
engine?.onGroupOperation = (String? groupId, RCIMIWGroupMemberInfo? operatorInfo,
RCIMIWGroupInfo? groupInfo, RCIMIWGroupOperation? operation,
List<RCIMIWGroupMemberInfo>? memberInfos, int? operationTime) {
// 执行群操作后的回调:包括创建群、加入群、踢出、退出、解散、添加管理员、移除管理员、转让群主
// 具体参照 RCIMIWGroupOperation 枚举
print("群组操作: $operation, 群组ID: $groupId");
};
// 设置群组资料变更回调
engine?.onGroupInfoChanged = (RCIMIWGroupMemberInfo? operatorInfo,
RCIMIWGroupInfo? groupInfo, List<String>? updateKeys, int? operationTime) {
// 群组资料变更回调。注意:只有包含在 updateKeys 中的属性值有效
print("群组资料变更: $updateKeys");
};
// 设置群成员资料变更回调
engine?.onGroupMemberInfoChanged = (String? groupId, RCIMIWGroupMemberInfo? operatorInfo,
RCIMIWGroupMemberInfo? memberInfo, int? operationTime) {
// 群成员资料变更回调
print("群成员资料变更: 群组ID $groupId");
};
// 设置群申请事件回调
engine?.onGroupApplicationEvent = (RCIMIWGroupApplicationInfo? info) {
// 群请求事件回调。包含以下事件:
// 1,用户申请加入群组的 "申请" 或 "结果"
// 2,邀请加入群组的 "申请" 或 "结果"
print("群申请事件: ${info?.type}");
};
// 设置群备注名更新多端同步回调
engine?.onGroupRemarkChangedSync = (String? groupId, RCIMIWGroupOperationType? operationType,
String? groupRemark, int? operationTime) {
// 群名称备注名更新多端同步回调事件
print("群备注名同步: 群组ID $groupId, 操作类型 $operationType");
};
// 设置群成员特别关注变更多端同步回调
engine?.onGroupFollowsChangedSync = (String? groupId, RCIMIWGroupOperationType? operationType,
List<String>? userIds, int? operationTime) {
// 群成员特别关注变更多端回调事件
print("群特别关注同步: 群组ID $groupId, 用户列表 $userIds");
};
群组管理
群组管理包含:创建群组、群组资料设置、踢出群组、退出群组、解散群组、群组转让。
创建群组
您可以调用 createGroup
方法创建一个新群组。