群组管理
本文档旨在指导开发者如何使用融云即时通讯 iOS IMLib SDK 实现创建群组、群组资料设置、踢出群组、退出群组、解散群组、转让群组等功能。
提示
- 此功能从 5.12.0 版本开始支持。
- 针对已经通过原群组功能接口
/group/create.json
创建的群组,默认不支持调用群托管的相关功能接口,需要调用“导入群托管数据”接口,设置群组所有者(群主)及群组的默认权限后才能使用。
开通服务
信息托管服务已默认开通,您可以直接使用此功能。
群组事件
群事件定义在 RCGroupEventDelegate 中,包含群操作、群信息群成员信息变更、加群申请相关通知、群备注名多端同步、群特别关注多端同步等。
- 您可以调用
addGroupEventDelegate
添加群组事件回调代理。 - 您可以调用
removeGroupEventDelegate
方法移除群组事件回调代理。
提示
信息托管服务中,群组操作产生的 SDK 通知回调也是一种状态通知行为,不管应用中是否实现 SDK 的事件监听,服务端都会对 SDK 进行状态同步,确保本地为最新的数据信息,所以会计入消息的分发、下行数据统计中。
示例代码
objc
// 添加群组事件回调代理
[[RCCoreClient sharedCoreClient] addGroupEventDelegate:self];
// ------ 群组事件回调 ------
- (void)onGroupOperation:(NSString *)groupId
operatorInfo:(RCGroupMemberInfo *)operatorInfo
groupInfo:(RCGroupInfo *)groupInfo
operation:(RCGroupOperation)operation
memberInfos:(NSArray<RCGroupMemberInfo *> *)memberInfos
operationTime:(long long)operationTime {
// 群组操作回调
// 操作事件包括创建群、加入群、踢出、退出、解散、添加管理员、移除管理员、转让群主,详见 RCGroupOperation
}
- (void)onGroupInfoChanged:(RCGroupMemberInfo *)operatorInfo
groupInfo:(RCGroupInfo *)groupInfo
updateKeys:(NSArray<RCGroupInfoKeys> *)updateKeys
operationTime:(long long)operationTime __deprecated_msg("Use [RCGroupEventDelegate onGroupInfoChanged:fullGroupInfo:changedGroupInfo:operationTime:] instead") {
// 群组资料变更回调
// groupInfo 的属性除 groupId 以外,只有包含在 updateKeys 中的属性值有效(其他属性值均为初始化后的默认值)
}
- (void)onGroupInfoChanged:(RCGroupMemberInfo *)operatorInfo
fullGroupInfo:(RCGroupInfo *)fullGroupInfo
changedGroupInfo:(RCGroupInfo *)changedGroupInfo
operationTime:(long long)operationTime {
// 群组资料变更回调
// fullGroupInfo: 全量群组信息(变更后的全量信息)
// changedGroupInfo: 内容有变更的群组信息(只有发生变更的属性)
}
- (void)onGroupInfoChanged:(RCGroupMemberInfo *)operatorInfo
fullGroupInfo:(RCGroupInfo *)fullGroupInfo
changedGroupInfo:(RCGroupInfo *)changedGroupInfo
operationTime:(long long)operationTime {
// 群组资料变更回调
// fullGroupInfo 为群组完整信息
}
- (void)onGroupMemberInfoChanged:(NSString *)groupId
operatorInfo:(RCGroupMemberInfo *)operatorInfo
memberInfo:(RCGroupMemberInfo *)memberInfo
operationTime:(long long)operationTime {
// 群成员资料变更回调
}
- (void)onGroupApplicationEvent:(RCGroupApplicationInfo *)event {
// 群请求事件回调。包含以下事件:
// 1. 用户申请加入群组的 “申请” 或 “结果”
// 2. 邀请加入群组的 “申请” 或 “结果”
}
- (void)onGroupRemarkChangedSync:(NSString *)groupId
operationType:(RCGroupOperationType)operationType groupRemark:(NSString *)groupRemark
operationTime:(long long)operationTime {
// 群组备注名更新多端同步回调事件
}
- (void)onGroupFollowsChangedSync:(NSString *)groupId
operationType:(RCGroupOperationType)operationType
userIds:(NSArray<NSString *> *)userIds
operationTime:(long long)operationTime {
// 群成员特别关注变更多端同步回调事件
}
群组管理
群组管理包含:创建群组、群组资料设置、踢出群组、退出群组、解散群组、群组转让。
创建群组
您可以调用 createGroup
方法创建一个新群组。
接口原型
objc
- (void)createGroup:(RCGroupInfo *)groupInfo
inviteeUserIds:(nullable NSArray<NSString *> *)inviteeUserIds
successBlock:(void (^)(RCErrorCode processCode))successBlock
errorBlock:(void (^)(RCErrorCode errorCode, NSArray<NSString *> * _Nullable errorKeys))errorBlock;
参数说明
属性名 | 类型 | 必填 | 描述 |
---|---|---|---|
groupInfo | RCGroupInfo | 是 | 群组的相关信息。 |
inviteeUserIds | NSArray | 否 | 创建群同时邀请的用户 userId 列表。 |
successBlock | Block | 否 | 成功回调。 |
errorBlock | Block | 否 | 失败回调,返回对应报错的 key 列表。 |