群属性管理

更新时间:2022-02-28

本文介绍如何管理群的属性。

环信即时通讯 IM iOS SDK 提供 IEMGroupManager 类和 EMGroup 类,用于管理群组属性,其中包含如下主要方法:

  • changeGroupSubject 修改群组名称;
  • changeDescription 修改群组描述;
  • updateGroupAnnouncementWithId 设置/更新群公告;
  • getGroupAnnouncementWithId 获取群公告;
  • uploadGroupSharedFileWithId 上传共享文件;
  • removeGroupSharedFileWithId 删除群共享文件;
  • getGroupFileListWithId 获取群共享文件列表;
  • updateGroupExtWithId 更新群扩展字段。

修改群组名称和描述

群主和群管理员可以修改群名称和群描述。

群名称的长度限制为:128 个字符。群描述的长度限制为:512 个字符。

//Modify group subject
[[EMClient sharedClient].groupManager changeGroupSubject:@"subject"
                                                                                                             forGroup:@"groupID" 
                                                                                                                  error:nil];

//Modify group description
[[EMClient sharedClient].groupManager changeDescription:@"desc"
                                                                                                            forGroup:@"groupID" 
                                                                                                               error:nil];

群公告

群主和群管理员可以设置和更新群公告,群成员可以获取群公告。

群公告的长度限制为:512 个字符。

设置/更新群公告

群公告发生变化时,群成员会收到群组事件通知 EMGroupManagerDelegate#groupAnnouncementDidUpdate

/**

  * Update group announcement
  * @param groupId Group ID
  * @param announcement Announcement content
  * @throws ChatException
    */
    [[EMClient sharedClient].groupManager updateGroupAnnouncementWithId:@"groupID"
                                                                                                                       announcement:@"announcement" 
                                                                                                                                error:nil];
    

获取群公告

[[EMClient sharedClient].groupManager getGroupAnnouncementWithId:@"groupID" 
                                                                                                                                  error:nil];

共享文件

IEMGroupManager 提供了群共享文件上传和群文件删除等功能。群主和群管理员可删除全部的群共享文件,群成员只能删除自己上传的群文件。

/**

  * 上传共享文件
  * 群共享文件大小的上限默认为 10 MB。共享文件上传成功时,群成员会收到群组事件回调 `EMGroupManagerDelegate#groupFileListDidUpdate`。
    */
    [[EMClient sharedClient].groupManager uploadGroupSharedFileWithId:@"groupID"
                                                                                                                              filePath:@"filePath" 
                                                                                                                            progress:nil 
                                                                                                                          completion:nil];
    
/**

  * 删除群共享文件。共享文件若成功删除,群成员会收到群组事件回调 `EMGroupManagerDelegate#groupFileListDidUpdate`。
    *
  * @param aGroupId         Group ID
  * @param aSharedFileId    share file ID
  * @param pError           error
    */
    [[EMClient sharedClient].groupManager removeGroupSharedFileWithId:@"groupID"
                                                                                                                    sharedFileId:@"fileID" 
                                                                                                                               error:nil];
    
/**

 *  Get the share files of group from the server
    *
 *  @param aGroupId         Group ID
 *  @param aPageNum         Page number
 *  @param aPageSize        Page size
 *  @param pError           error
    *
 *  @result NSArray  The share files of group
    */
    [[EMClient sharedClient].groupManager getGroupFileListWithId:@"groupID"
                                                                                                                pageNumber:pageNumber 
                                                                                                                  pageSize:pageSize 
                                                                                                                         error:nil];
    

更新群扩展字段

群主和群管理员可以更新群组的扩展字段,开发者可以通过群组扩展字段设置 JSON 格式的数据,自定义更多群组信息。 群扩展字段的长度限制为:8 k。

示例代码如下:

[[EMClient sharedClient].groupManager updateGroupExtWithId:@"groupID" 
                                                                                                                            ext:@"ext" 
                                                                                                                        error:nil];