本文档提供群组相关的类型和接口使用说明。API 接口详细文档参看 Android API 参考、iOS API 参考。
群组管理功能指的是创建群组、添加群成员、获取已加入的群组、退出群组和解散群组等,接口位于 BIMClient 类中。
使用 createGroupConversation 创建群组多人聊天功能,同时支持设置群头像,群名称和群描述。如果不使用群信息可以传参 groupInfo 为 null。
/**
* 创建群组
* @param groupInfo 群组信息
* @param uidList 群用户列表
*/
BIMGroupInfo groupInfo = new BIMGroupInfo.BIMGroupInfoBuilder()
.avatarUrl("urlxxx") //群头像
.name("namexxx") //群名称
.description("descxxx") //群描述
.build();
BIMClient.getInstance().createGroupConversation(groupInfo, uidList, new BIMResultCallback<BIMConversation>() {
@Override
public void onSuccess(BIMConversation bimConversation) {
}
@Override
public void onFailed(BIMErrorCode bimErrorCode) {
}
});
java[[BIMClient sharedInstance] createGroupConversation:uidList completion:^(BIMConversation * _Nonnull conversation, BIMError * _Nullable error) {
}];
objectivec使用 addGroupMemberList 接口可以对已经存在的群组添加新的成员。
/**
* 添加群成员
* @param conversationId
* @param ids
* @param callback
*/
BIMClient.getInstance().addGroupMemberList(conversationId, uidList, new BIMSimpleCallback() {
@Override
public void onSuccess() {
}
@Override
public void onFailed(BIMErrorCode bimErrorCode) {
}
});
java[[BIMClient sharedInstance] addGroupMemberList:conversationId memberList:orderSet completion:^(NSSet<NSNumber *> * _Nonnull participants, BIMError * _Nullable error) {
}];
objectivec当前用户使用 leaveGroup 接口可以退出自己参与的群组。
/**
* 离开群组。
* @param conversationId 会话 ID。
* @param isDeleteServer 是否在服务器删除。
* @param callback 结果回调。
*/
BIMClient.getInstance().leaveGroup(conversationId, isDeleteServer, new BIMSimpleCallback() {
@Override
public void onSuccess() {
}
@Override
public void onFailed(BIMErrorCode bimErrorCode) {
}
});
java[[BIMClient sharedInstance] leaveGroup:conversationId completion:^(BIMError * _Nullable error) {
}];
objectivec如果当前用户是群主,则可以使用 dissolveGroup 来解散群,群解散后,将无法送发消息到此群。
/**
* 解散群组。
* @param conversationId 会话 ID。
* @param isDeleteLocal 是否在本地删除。
* @param callback 结果回调。
*/
BIMClient.getInstance().dissolveGroup(conversationId, isDeleteLocal, new BIMSimpleCallback() {
@Override
public void onSuccess() {
}
@Override
public void onFailed(BIMErrorCode bimErrorCode) {
}
});
java[[BIMClient sharedInstance] dissolveGroup:conversationId completion:^(BIMError * _Nullable error) {
}];
objectivec使用 setGroupName 设置当前群的名称。
BIMClient.getInstance().setGroupName(conversationId, "", new BIMSimpleCallback() {
@Override
public void onSuccess() {
}
@Override
public void onFailed(BIMErrorCode bimErrorCode) {
}
});
java[[BIMClient sharedInstance] setGroupName:conversationId name:name completion:^(BIMError * _Nullable error) {
}];
objectivec使用 setGroupNotice 设置当前群的群公告。
/**
* 设置群组名称。
* @param conversationId 会话 ID。
* @param name 群组名称。
* @param callback 结果回调。
*/
BIMClient.getInstance().setGroupNotice(conversationId, text,callback)
java[[BIMClient sharedInstance] setGroupNotice:conversationId notice:notice completion:^(BIMError * _Nullable error) {
}];
objectivec使用 getConversationMemberList 获取当前群的成员列表。
/**
* 获取群成员。
* @param conversationId 会话 ID。
* @param callback 群成员列表回调。
*/
BIMClient.getInstance().getConversationMemberList(conversationId, new BIMResultCallback<List<BIMMember>>() {
@Override
public void onSuccess(List<BIMMember> bimMembers) {
}
@Override
public void onFailed(BIMErrorCode bimErrorCode) {
}
});
java[[BIMClient sharedInstance] getConversationMemberList:conversationId];
objectivec群主和管理员可通过 removeGroupMemberList 移出部分成员。
/**
* 移除群成员。
* @param conversationId 会话 ID。
* @param ids 待移除的群成员 ID 列表。
* @param callback 结果回调。
*/
BIMClient.getInstance().removeGroupMemberList(conversationId, uidList, new BIMSimpleCallback() {
@Override
public void onSuccess() {
}
@Override
public void onFailed(BIMErrorCode bimErrorCode) {
}
});
jave[[BIMClient sharedInstance] removeGroupMemberList:conversationId uidList:uidList completion:^(NSSet<NSNumber *> * _Nonnull participants, BIMError * _Nullable error) {
}]
objectivec群成员角色和权限如下。
| 类型 | 含义 | 解散群 | 添加成员 | 移出成员 | 退出群聊 | 设置管理员 |
|---|---|---|---|---|---|---|
| BIM_MEMBER_ROLE_NORMAL | 普通成员 | 不支持 | 不支持 | 不支持 | 支持 | 不支持 |
| BIM_MEMBER_ROLE_OWNER | 群主 | 支持 | 支持 | 支持 | 支持 | 支持 |
| BIM_MEMBER_ROLE_ADMIN | 管理员 | 不支持 | 支持 | 支持 | 支持 | 支持 |
设置群管理员的实例代码如下。
/**
* 设置群成员角色。
* @param conversationId 会话 ID。
* @param uidList 群成员 ID 列表。
* @param role 群组角色。
* @param callback 结果回调。
*/
BIMClient.getInstance().setGroupMemberRole(conversationId, uidList,BIMMemberRole.BIM_MEMBER_ROLE_ADMIN, new BIMSimpleCallback() {
@Override
public void onSuccess() {
}
@Override
public void onFailed(BIMErrorCode bimErrorCode) {
}
});
java[[BIMClient sharedInstance] setGroupMemberRole:conversationId uidList:uidList role: role completion:^(BIMError * _Nullable error) {
}];
objectivec