聊天室属性管理

更新时间:2022-02-28

聊天室属性管理指管理聊天室的属性信息。

环信即时通讯 IM iOS SDK 提供 IEMChatroomManager 类、 EMChatroomManagerDelegate 类 和 EMChatroom 类,支持对聊天室的属性管理。

  • getChatroomSpecificationFromServerWithId 获取聊天室详情;
  • updateChatroomAnnouncementWithId 修改聊天室公告;
  • getChatroomAnnouncementWithId 获取聊天室公告;
  • updateSubject 修改聊天室主题;
  • updateDescription 修改聊天室说明信息。

开始前,请确保满足以下条件:

获取聊天室详情

聊天室所有成员可以通过该接口获取聊天室详情。

注意

  • 聊天室创建者、管理员和普通成员均可调用该接口。
  • 聊天室详情包括聊天室的主题、公告、描述、成员类型、管理员列表、当前聊天人数和聊天室最大成员数等。

示例代码如下:

EMError *error = nil;
EMChatroom *chatroom = [[EMClient sharedClient].roomManager getChatroomSpecificationFromServerWithId:@“chatroomId” error:&error];

修改聊天室公告

聊天室所有者和管理员可以设置和更新群公告。

注意

  • 仅聊天室所有者和管理员可调用该接口。
  • 成员仅当前在聊天室中才能收到通知。
  • 聊天室所有者或者管理员修改聊天室公告时,其它成员会收到聊天室公告有更新的通知,触发其他成员的 chatroomAnnouncementDidUpdate 代理回调方法。

示例代码如下:

EMError *error =  nil;
[[EMClient sharedClient].roomManager updateChatroomAnnouncementWithId:_chatroomId announcement:textString error:&error];

获取聊天室公告

聊天室所有者和管理员可以设置和更新群公告,群成员可以获取群公告。

示例代码如下:

[EMClient.sharedClient.roomManager getChatroomAnnouncementWithId:@"chatRoomId" error:&error];

修改聊天室主题

聊天室所有者和管理员可以设置和更新群公告,聊天室成员可以获取聊天室主题。

示例代码如下:

EMError *error = nil;
[[EMClient sharedClient].roomManager updateSubject:textString forChatroom:self.chatroom.chatroomId error:&error];

修改聊天室说明信息

聊天室所有者和管理员可以设置和更新群公告,聊天室成员可以获取聊天室说明信息。

示例代码如下:

EMError *error = nil;
[[EMClient sharedClient].roomManager updateDescription:textString forChatroom:self.chatroom.chatroomId error:&error];

聊天室相关回调

示例代码如下:

//注册聊天室回调。
[[EMClient sharedClient].roomManager addDelegate:self delegateQueue:nil];

示例代码如下:

//移除聊天室回调。
[[EMClient sharedClient].roomManager removeDelegate:self];

聊天室代理方法

/**
 *  有用户加入聊天室。
 *  @param aChatroom    加入的聊天室。
 *  @param aUsername    加入者。
    */
 - (void)userDidJoinChatroom:(EMChatroom *)aChatroom
      user:(NSString *)aUsername{
}

/**
 *  有用户离开聊天室。
 *  @param aChatroom    离开的聊天室。
 *  @param aUsername    离开者。
    */
 - (void)userDidLeaveChatroom:(EMChatroom *)aChatroom
      user:(NSString *)aUsername {
  }
  
/**
 *  被踢出聊天室。
 *  @param aChatroom    被踢出的聊天室。
 *  @param aReason      被踢出的原因。
    */
 - (void)didDismissFromChatroom:(EMChatroom *)aChatroom
      reason:(EMChatroomBeKickedReason)aReason {

  }

/**

 *  有成员被加入禁言列表。
 *  @param aChatroom        聊天室。
 *  @param aMutedMembers    禁言的成员。
 *  @param aMuteExpire      禁言失效时间,暂时不可用。
    */
 - (void)chatroomMuteListDidUpdate:(EMChatroom *)aChatroom
      addedMutedMembers:(NSArray *)aMutes
             muteExpire:(NSInteger)aMuteExpire {
          
  }

/**
 *  有成员被移出禁言列表。
 *  @param aChatroom        聊天室。
 *  @param aMutedMembers    移出禁言列表的成员。
    */
 - (void)chatroomMuteListDidUpdate:(EMChatroom *)aChatroom
      removedMutedMembers:(NSArray *)aMutes {           
  }

/**
 *  有成员被加入管理员列表。
 *  @param aChatroom    聊天室。
 *  @param aAdmin       加入管理员列表的成员。
    */
 - (void)chatroomAdminListDidUpdate:(EMChatroom *)aChatroom
      addedAdmin:(NSString *)aAdmin {
  }

/**
 *  有成员被移出管理员列表。
 *  @param aChatroom    聊天室。
 *  @param aAdmin       移出管理员列表的成员。
    */
- (void)chatroomAdminListDidUpdate:(EMChatroom *)aChatroom
      removedAdmin:(NSString *)aAdmin {
  }

/**
 *  聊天室创建者有更新。
 *  @param aChatroom    聊天室。
 *  @param aNewOwner    新聊天室所有者。
 *  @param aOldOwner    旧聊天室所有者。
    */
 - (void)chatroomOwnerDidUpdate:(EMChatroom *)aChatroom
      newOwner:(NSString *)aNewOwner
      oldOwner:(NSString *)aOldOwner {
  }