title: 讨论组管理

本篇文档介绍讨论组的创建和权限管理。

创建讨论组

Wilddog IM SDK 不严格区分单聊和讨论组,创建会话时,当会话成员为 2 个时,则为单聊。当大于 2 个时则自动升级为讨论组。 -newConversationWithMembers:completion: 用于创建讨论组。 例如,创建一个讨论组:

  1. // 创建会话,传入的数组中默认包含登录用户 ID
  2. [[WDGIM im] newConversationWithMembers:@[@"UserID1",@"UserID2",@"UserID3"]
  3. completion:^(WDGIMConversation * _Nullable conversation, NSError *__autoreleasing _Nullable * _Nullable error) {
  4. //conversation 是创建成功的会话对象
  5. }];

邀请用户加入讨论组

WDGIMConversation 的接口 -addMembers:completion: 用于拉用户进入讨论组。 讨论组内任何人都可以邀请用户加入,且无需对方同意。 例如,邀请两个用户进入讨论组:

  1. // 邀请用户入讨论组
  2. [conversation addMembers:@[@"UserID4",@"UserID5"] completion:^(NSError * _Nullable error) {
  3. }];

删除讨论组成员

WDGIMConversation 的接口 -removeMembers:completion: 用于删除讨论组成员。 只有创建讨论组的用户可以删除其他讨论组成员。用户在讨论组中删除自己可以退出讨论组。 例如,删除两个讨论组成员:

  1. // 删除讨论组成员
  2. [conversation removeMembers:@[@"UserID4",@"UserID5"] completion:^(NSError * _Nullable error) {
  3. }];

获取讨论组成员列表

members 属性用于获取讨论组成员列表:

  1. NSArray *members = conversation.members;

提示:

任何讨论组成员都有权限调用此方法。

获取讨论组变更消息

当讨论组内有成员变更时,通过 WDGIM 的协议方法可以监听获取讨论组变更消息:

  1. - (void)wilddogIM:(WDGIM *)im didGroupInfoChange:(NSArray<WDGIMMessageGroupTips *> *)groupTips
  2. {
  3. for (WDGIMMessageGroupTips *tip in groupTips) {
  4. switch (tip.groupTipType) {
  5. //用户加入讨论组通知
  6. case WDGIMGroupTipsTypeJoin:
  7. break;
  8. //用户退出讨论组通知
  9. case WDGIMGroupTipsTypeQuit:
  10. break;
  11. //用户被踢出讨论组通知
  12. case WDGIMGroupTipsTypeRemove:
  13. break;
  14. default:
  15. break;
  16. }
  17. }
  18. }