群成员管理
本文档旨在指导开发者如何使用融云即时通讯 Flutter IMLib SDK 实现设置或查询群组成员资料,添加或删除群管理员等功能。
提示
此功能从 5.18.0 版本开始支持。
开通服务
使用此功能前,您须在控制台开通信息托管服务。
群成员
支持查询指定群的群成员信息,并可设置群成员信息。
分页获取群成员信息
您可以使用 getGroupMembersByRole
按群成员角色分页获取群成员信息。
此接口支持返回本次查询条件的总数,见 RCIMIWPagingQueryOption
的 getTotalCount
属性。
群成员角色 RCIMIWGroupMemberRole
枚举介绍:
枚举值 | 群成员角色 |
---|---|
undef | 未定义角色(使用此枚举查询代表查询全部类型群成员) |
normal | 普通群成员 |
manager | 管理员 |
owner | 群主 |
提示
分页拉取说明:
- 首次拉取时,
RCIMIWPagingQueryOption
的pageToken
无需设置(不设置、设置null、设置"",效果等同)。 - 拉取第二页需要传入首次拉取返回结果
RCIMIWPagingQueryResult
类型中的pageToken
。- 如果不为 "",则可以传入该值再次拉取,直至
pageToken
返回为 "",表示全部拉取完成。 - 如果为 "",表示没有下一页或已拉取完成,无需再次拉取。如传递 "",将视为拉取首页数据。
- 如果不为 "",则可以传入该值再次拉取,直至
代码示例
Dart
// 分页拉取参数(设置null与设置"",效果等同)
String pageToken = "";
Future<void> getGroupMembersByRole(String pageToken) async {
// 群Id
String groupId = "groupId";
// 通过 role 参数指定拉取全部群成员角色类型的群成员信息
RCIMIWGroupMemberRole role = RCIMIWGroupMemberRole.undef;
// 分页请求参数
RCIMIWPagingQueryOption option = RCIMIWPagingQueryOption.create(
count: 20, // 设置分页大小,取值范围为 [1~100]
pageToken: pageToken, // 分页拉取参数
order: false, // 按加入群组时间正序、倒序获取。true:正序;false:倒序
);
// 创建回调
IRCIMIWGetGroupMembersByRoleCallback callback = IRCIMIWGetGroupMembersByRoleCallback(
onSuccess: (RCIMIWPagingQueryResult<RCIMIWGroupMemberInfo>? result) {
if (result != null && result.pageToken.isNotEmpty) {
// 使用返回的 pageToken 拉取下一页
getGroupMembersByRole(result.pageToken);
} else {
// 拉取结束
print("群成员拉取完成");
}
},
onError: (RCIMIWCoreErrorCode? code) {
// 拉取失败
print("拉取失败,code: $code");
},
);
// 调用分页获取群成员方法
int? code = await engine?.getGroupMembersByRole(
groupId,
role,
option,
callback: callback,
);
}