群属性管理
更新时间: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];