超大群管理
更新时间: 2023/06/26 10:50:08
超大群概述
超大群对应的管理类为 NIMSuperTeamManager
。超大群是针对大规模群聊场景的功能。目前最多支持10000人的群聊。由于超大群场景较为特殊,并不能支持所有高级群提供的管理功能。目前超大群支持群主、管理员与普通成员三种身份。
超大群功能为增值服务,如需使用该功能,可以在云信控制台自助开通,或者联系商务开通。
创建群组
超大群需要通过服务端API创建,客户端暂时不提供接口创建。
获取群组
NIM SDK 在程序启动时会对本地群信息进行同步,所以只需要调用本地缓存接口获取群就可以了。 SDK 提供了批量获取自己的群接口、以及根据单个群 id 查询的接口。同样 SDK 也提供了远程获取群信息的接口。
从本地获取所有群组
原型
@protocol NIMSuperTeamManager <NSObject>
/**
* 获取所有群组
*
* @return 返回所有群组
*/
- (nullable NSArray<NIMTeam *> *)allMyTeams;
@end
从本地获取指定群组
@protocol NIMSuperTeamManager <NSObject>
/**
* 根据群组ID获取具体的群组信息
*
* @param teamId 群组ID
*
* @return 群组信息
*/
- (nullable NIMTeam *)teamById:(NSString *)teamId;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamId | NSString | 群组 ID |
从云端获取指定群组
@protocol NIMSuperTeamManager <NSObject>
/**
* 获取群信息
*
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)fetchTeamInfo:(NSString *)teamId
completion:(nullable NIMTeamFetchInfoHandler)completion
@end
解散群组
超大群需要通过服务端API解散,客户端暂时不提供接口解散。
群成员管理
入群操作
申请加入群组
@protocol NIMSuperTeamManager <NSObject>
/**
* 群申请
*
* @param teamId 群组ID
* @param message 申请消息
* @param completion 完成后的回调
*/
- (void)applyToTeam:(NSString *)teamId
message:(NSString *)message
completion:(nullable NIMTeamApplyHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamId | NSString | 群组 ID |
message | NSString | 申请消息 |
completion | NIMTeamApplyHandler | 完成后的回调 |
验证入群申请
同意群申请
@protocol NIMSuperTeamManager <NSObject>
/**
* 通过群申请
*
* @param teamId 群组ID
* @param userId 申请的用户ID
* @param completion 完成后的回调
*/
- (void)passApplyToTeam:(NSString *)teamId
userId:(NSString *)userId
completion:(nullable NIMTeamApplyHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamId | NSString | 群组 ID |
userId | NSString | 申请的用户ID |
completion | NIMTeamApplyHandler | 完成后的回调 |
拒绝群申请
@protocol NIMSuperTeamManager <NSObject>
/**
* 拒绝群申请
*
* @param teamId 群组ID
* @param userId 申请的用户ID
* @param rejectReason 拒绝理由
* @param completion 完成后的回调
*/
- (void)rejectApplyToTeam:(NSString *)teamId
userId:(NSString *)userId
rejectReason:(NSString*)rejectReason
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamId | NSString | 群组 ID |
userId | NSString | 申请的用户ID |
rejectReason | NSString | 拒绝理由 |
completion | NIMTeamHandler | 完成后的回调 |
邀请加入群组
@protocol NIMSuperTeamManager <NSObject>
/**
* 邀请用户入群
*
* @param users 用户ID列表
* @param teamId 群组ID
* @param postscript 邀请附言
* @param attach 扩展消息
* @param completion 完成后的回调
*/
- (void)addUsers:(NSArray<NSString *> *)users
toTeam:(NSString *)teamId
postscript:(nullable NSString *)postscript
attach:(nullable NSString *)attach
completion:(nullable NIMTeamMemberHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
users | NSArray<NSString *> | 用户 ID 列表 |
teamId | NSString | 群组 ID |
postscript | NSString | 邀请附言 |
attach | NSString | 扩展消息 |
completion | NIMTeamMemberHandler | 完成后的回调 |
验证入群邀请
接受入群邀请
@protocol NIMSuperTeamManager <NSObject>
/**
* 接受入群邀请
*
* @param teamId 群组ID
* @param invitorId 邀请者ID
* @param completion 完成后的回调
*/
- (void)acceptInviteWithTeam:(NSString*)teamId
invitorId:(NSString*)invitorId
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamId | NSString | 群组 ID |
invitorId | NSString | 邀请者ID |
completion | NIMTeamHandler | 完成后的回调 |
拒绝入群邀请
@protocol NIMSuperTeamManager <NSObject>
/**
* 拒绝入群邀请
*
* @param teamId 群组ID
* @param invitorId 邀请者ID
* @param rejectReason 拒绝原因
* @param completion 完成后的回调
*/
- (void)rejectInviteWithTeam:(NSString*)teamId
invitorId:(NSString*)invitorId
rejectReason:(NSString*)rejectReason
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamId | NSString | 群组 ID |
invitorId | NSString | 邀请者ID |
rejectReason | NSString | 拒绝原因 |
completion | NIMTeamHandler | 完成后的回调 |
踢人出群
@protocol NIMSuperTeamManager <NSObject>
/**
* 从群组内移除成员
*
* @param users 需要移除的用户ID列表
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)kickUsers:(NSArray<NSString *> *)users
fromTeam:(NSString *)teamId
completion:(NIMSuperTeamHandler)completion
@end
被踢出的用户相关会话信息仍然会保留,但不再能接收关于此群的消息。
参数列表
参数 | 类型 | 说明 |
---|---|---|
users | NSArray<NSString *> | 需要移除的用户ID列表 |
teamId | NSString | 群组 ID |
completion | NIMSuperTeamHandler | 完成后的回调 |
主动退群
用户退群
@protocol NIMSuperTeamManager <NSObject>
/**
* 退出群组
*
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)quitTeam:(NSString *)teamId
completion:(NIMSuperTeamHandler)completion
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamId | NSString | 群组 ID |
completion | NIMSuperTeamHandler | 完成后的回调 |
用户退群成功后,相关会话信息仍然会保留,但不再能接收关于此群的消息。
获取群组成员
群组成员信息不同于用户资料,主要是和群组关联的信息。同一个用户在不同群组中自己的群成员信息也不一样。群成员信息包括群昵称,进群时间,群成员类型等等。
原型
@interface NIMSuperTeamMember : NSObject
/**
* 群ID
*/
@property (nullable,nonatomic,copy,readonly) NSString *teamId;
/**
* 群成员ID
*/
@property (nullable,nonatomic,copy,readonly) NSString *userId;
/**
* 邀请者ID
* @dicusssion 此字段仅当该成员为自己时有效。不允许查看其他群成员的邀请者
*/
@property (nullable,nonatomic,copy,readonly) NSString *invitor;
/**
* 群昵称
*/
@property (nullable,nonatomic,copy) NSString *nickname;
/**
* 进群时间
*/
@property (nonatomic,assign,readonly) NSTimeInterval createTime;
/**
* 新成员群自定义信息
*/
@property (nullable,nonatomic,copy) NSString *customInfo;
@end
属性列表
参数 | 类型 | 说明 |
---|---|---|
teamId | NSString | 群组ID |
userId | NSString | 群成员 ID |
nickname | NSString | 群昵称 |
isMuted | BOOL | 是否被禁言 |
createTime | NSTimeInterval | 进群时间 |
customInfo | NSString | 新成员群自定义信息 |
对于群成员, SDK 不保证有本地数据,每次登录会同步所在群的群成员。对于同步或主动远程获取过的群成员,SDK会把数据缓存在本地。
当本地缓存群成员资料发生变动时,会通过 NIMSuperTeamManagerDelegate
的回调通知上层。
获取群组成员列表
@protocol NIMSuperTeamManager <NSObject>
/**
* 获取群组成员
*
* @param teamId 群组ID
* @param option 分页查询选项
* @param completion 完成后的回调
*/
- (void)fetchTeamMembers:(NSString *)teamId
option:(NIMTeamFetchMemberOption *)option
completion:(nullable NIMSuperTeamMemberHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamId | NSString | 群组 ID |
option | NIMTeamFetchMemberOption | 分页查询选项 |
completion | NIMSuperTeamMemberHandler | 完成后的回调 |
绝大多数情况这个请求都是从本地读取缓存并同步返回,但是由于群成员信息量较大, SDK 采取的是登录后延迟拉取的策略。考虑到用户网络等问题, SDK 有可能没有及时缓存群成员信息,那么这个请求将是个带网络请求的异步操作(增量请求)。同时这个接口会去请求本地没有缓存的群用户的资料信息,但不会触发 - (void)onUserInfoChanged: 回调。
获取到的群成员只有云信服务器托管的群相关数据,需要开发者结合自己管理的用户数据进行界面显示。
获取指定群组成员
@protocol NIMSuperTeamManager <NSObject>
/**
* 获取单个群成员信息。返回本地缓存的群成员信息,如果本地没有相应数据则返回 nil。
*
* @param userId 用户ID
* @param teamId 群组ID
*/
- (nullable NIMTeamMember *)teamMember:(NSString *)userId
inTeam:(NSString *)teamId;
@end
修改群成员资料
@protocol NIMSuperTeamManager <NSObject>
/**
* 更新成员群昵称
*
* @param userId 群成员ID
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)updateMyNick:(NSString *)userId
inTeam:(NSString *)teamId
completion:(NIMSuperTeamHandler)completion
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
userId | NSString | 用户 ID |
teamId | NSString | 群组 ID |
completion | NIMSuperTeamHandler | 完成后的回调 |
- 更新自己的群成员昵称
@protocol NIMSuperTeamManager <NSObject>
* 更新自己的群成员昵称
*
* @param userId 群成员ID
* @param newNick 新的群成员昵称
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)updateUserNick:(NSString *)userId
newNick:(NSString *)newNick
inTeam:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion
@end
- 更新自己的群成员自定义属性
@protocol NIMSuperTeamManager <NSObject>
/**
* 更新自己的群成员自定义属性
*
* @param newInfo 新的自定义属性
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)updateMyCustomInfo:(NSString *)newInfo
inTeam:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion
@end
修改群信息
SDK 提供了修改群信息的批量接口。这个接口可以一次性修改群的多个属性,如名称,公告等,传入的数据键值对是 {@(NIMSuperTeamUpdateTag) : NSString},无效数据将被过滤.群主和管理员可修改
/**
* 更新群信息
*
* @param values 需要更新的群信息键值对
* @param teamId 群组ID
* @param completion 完成后的回调
* @discussion 这个接口可以一次性修改群的多个属性,如名称,公告等,传入的数据键值对是 {@(NIMSuperTeamUpdateTag) : NSString},无效数据将被过滤.群主和管理员可修改
*/
- (void)updateTeamInfos:(NSDictionary<NSNumber *,NSString *> *)values
teamId:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
- NIMSuperTeamUpdateTag原型
/**
* 群信息更新字段
*/
typedef NS_ENUM(NSInteger, NIMSuperTeamUpdateTag){
/**
* 群名
*/
NIMSuperTeamUpdateTagName = 3,
/**
* 群简介
*/
NIMSuperTeamUpdateTagIntro = 14,
/**
* 群公告
*/
NIMSuperTeamUpdateTagAnouncement = 15,
/**
* 群验证方式
*/
NIMSuperTeamUpdateTagJoinMode = 16,
/**
* 客户端自定义拓展字段
*/
NIMSuperTeamUpdateTagClientCustom = 18,
/**
* 服务器自定义拓展字段
* @discussion SDK 无法直接修改这个字段, 请调用服务器接口
*/
NIMSuperTeamUpdateTagServerCustom = 19,
/**
* 头像
*/
NIMSuperTeamUpdateTagAvatar = 20,
/**
* 被邀请模式
*/
NIMSuperTeamUpdateTagBeInviteMode = 21,
/**
* 群全体禁言
* @discussion SDK 无法直接修改这个字段, 请调用服务器接口
*/
NIMSuperTeamUpdateTagMuteMode = 101,
/**
* 对某些资料内容另外的反垃圾的业务ID
*/
NIMSuperTeamUpdateTagAntispamBusinessId = 102,
};
- 参数
参数 | 类型 | 说明 |
---|---|---|
values | NSString | 需要更新的群信息键值对 |
teamId | NSString | 群组 ID |
completion | NIMTeamHandler | 完成后的回调 |
监听群成员变化
@protocol NIMTeamManagerDelegate <NSObject>
/**
* 群组成员变动回调,包括数量增减以及成员属性变动
*
* @param team 变动的群组
*/
- (void)onTeamMemberChanged:(NIMSuperTeam *)team;
@end
判断自己是否在群里
根据群组ID判断是否是我所在的群
@protocol NIMSuperTeamManager <NSObject>
/**
* 根据群组ID判断是否是我所在的群
*
* @param teamId 群组ID
*
* @return 是否在此群组
*/
- (BOOL)isMyTeam:(NSString *)teamId;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamId | NSString | 群组ID |
群主转让
@protocol NIMSuperTeamManager <NSObject>
/**
* 移交群主
*
* @param teamId 群组ID
* @param newOwnerId 新群主ID
* @param isLeave 是否同时离开群组
* @param completion 完成后的回调
*/
- (void)transferManagerWithTeam:(NSString *)teamId
newOwnerId:(NSString *)newOwnerId
isLeave:(BOOL)isLeave
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamId | NSString | 群组 ID |
newOwnerId | NSString | 新群主ID |
isLeave | BOOL | 是否同时离开群组 |
completion | NIMSuperTeamHandler | 完成后的回调 |
增加管理员
@protocol NIMSuperTeamManager <NSObject>
/**
* 添加管理员
*
* @param teamId 群组ID
* @param users 需要添加为管理员的用户ID列表
* @param completion 完成后的回调
*/
- (void)addManagersToTeam:(NSString *)teamId
users:(NSArray<NSString *> *)users
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
users | NSArray<NSString *> | 需要添加为管理员的用户ID列表 |
teamId | NSString | 群组 ID |
completion | NIMSuperTeamHandler | 完成后的回调 |
移除管理员
@protocol NIMSuperTeamManager <NSObject>
/**
* 移除管理员
*
* @param teamId 群组ID
* @param users 需要移除管理员的用户ID列表
* @param completion 完成后的回调
*/
- (void)removeManagersFromTeam:(NSString *)teamId
users:(NSArray<NSString *> *)users
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
users | NSArray<NSString *> | 需要移除管理员的用户ID列表 |
teamId | NSString | 群组 ID |
completion | NIMSuperTeamHandler | 完成后的回调 |
禁言
禁言指定成员
@protocol NIMSuperTeamManager <NSObject>
/**
* 群成员禁言
*
* @param mute 是否禁言
* @param userId 用户ID
* @param teamId 群组ID
* @param completion 经验操作完成后的回调
* @discussion 操作成功后,云信服务器会下发禁言的群通知消息
*/
- (void)updateMuteState:(BOOL)mute
userIds:(NSArray<NSString *> *)userIds
inTeam:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
mute | BOOL | 是否禁言 |
users | NSArray<NSString *> | 用户ID |
teamId | NSString | 群组 ID |
completion | NIMSuperTeamHandler | 完成后的回调 |
禁言群全体成员
@protocol NIMSuperTeamManager <NSObject>
/**
* 禁言群全体成员
*
* @param mute 是否禁言
* @param teamId 群组ID
* @param completion 经验操作完成后的回调
* @discussion 操作成功后,云信服务器会下发禁言的群通知消息
*/
- (void)updateMuteState:(BOOL)mute
inTeam:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
mute | BOOL | 是否禁言 |
teamId | NSString | 群组 ID |
completion | NIMSuperTeamHandler | 完成后的回调 |
查询被禁言情况
@protocol NIMSuperTeamManager <NSObject>
/**
* 获取群内被禁言的成员列表
*
* @param teamId 群组ID
* @param completion 经验操作完成后的回调
* @discussion 绝大多数情况这个请求都是从本地读取缓存并同步返回,但是由于群成员信息量较大, SDK 采取的是登录后延迟拉取的策略 考虑到用户网络等问题, SDK 有可能没有及时缓存群成员信息,那么这个请求将是个带网络请求的异步操作(增量请求)。 同时这个接口会去请求本地没有缓存的群用户的资料信息,但不会触发 - (void)onUserInfoChanged: 回调。
*/
- (void)fetchTeamMutedMembers:(NSString *)teamId
completion:(nullable NIMTeamMemberHandler)completion;
@end
群资料管理
编辑群资料
群主可以修改群资料,成员目前只能修改自己的信息。当修改完群组资料后,会收到一条类型为 群组资料变更 (NIMSuperTeamNotificationContent) 的群组通知消息。
具体包括:
修改群信息
@protocol NIMSuperTeamManager <NSObject>
* 更新群信息
*
* @param values 需要更新的群信息键值对
* @param teamId 群组ID
* @param completion 完成后的回调
* @discussion 这个接口可以一次性修改群的多个属性,如名称,公告等,传入的数据键值对是 {@(NIMSuperTeamUpdateTag) : NSString},无效数据将被过滤
*/
- (void)updateTeamInfos:(NSDictionary<NSNumber *,NSString *> *)values
teamId:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
values | NSDictionary | 需要更新的群信息键值对 |
teamId | NSString | 群组 ID |
completion | NIMTeamHandler | 完成后的回调 |
更新群组名称
@protocol NIMSuperTeamManager <NSObject>
/**
* 更新群组名称
*
* @param teamName 群组名称
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)updateTeamName:(NSString *)teamName
teamId:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamName | NSString | 群组名称 |
teamId | NSString | 群组 ID |
completion | NIMTeamHandler | 完成后的回调 |
更新群组头像
@protocol NIMSuperTeamManager <NSObject>
/**
* 更新群组头像
*
* @param teamAvatarUrl 群组头像Url
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)updateTeamAvatar:(NSString *)teamAvatarUrl
teamId:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamAvatarUrl | NSString | 群组头像Url |
teamId | NSString | 群组 ID |
completion | NIMTeamHandler | 完成后的回调 |
更新群组验证方式
@protocol NIMSuperTeamManager <NSObject>
/**
* 更新群组验证方式
*
* @param joinMode 验证方式
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)updateTeamJoinMode:(NIMTeamJoinMode)joinMode
teamId:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
joinMode | NIMTeamJoinMode | 验证方式 |
teamId | NSString | 群组 ID |
completion | NIMTeamHandler | 完成后的回调 |
更新群组被邀请人验证方式
@protocol NIMSuperTeamManager <NSObject>
/**
* 更新群组被邀请人验证方式
*
* @param joinMode 验证方式
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)updateTeamBeInviteMode:(NIMTeamBeInviteMode)beInviteMode
teamId:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
@end
更新群介绍
@protocol NIMSuperTeamManager <NSObject>
/**
* 更新群介绍
*
* @param intro 群介绍
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)updateTeamIntro:(NSString *)intro
teamId:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
intro | NSString | 群介绍 |
teamId | NSString | 群组 ID |
completion | NIMTeamHandler | 完成后的回调 |
更新群公告
@protocol NIMSuperTeamManager <NSObject>
/**
* 更新群公告
*
* @param announcement 群公告
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)updateTeamAnnouncement:(NSString *)announcement
teamId:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
announcement | NSString | 群公告 |
teamId | NSString | 群组 ID |
completion | NIMTeamHandler | 完成后的回调 |
更新群自定义信息
@protocol NIMSuperTeamManager <NSObject>
/**
* 更新群自定义信息
*
* @param info 群自定义信息
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)updateTeamCustomInfo:(NSString *)info
teamId:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
info | NSString | 群自定义信息 |
teamId | NSString | 群组 ID |
completion | NIMTeamHandler | 完成后的回调 |
监听群组变化
- 群组更新回调
@protocol NIMTeamManagerDelegate <NSObject>
/**
* 群组更新回调
*
* @param team 更新的群组
*/
- (void)onTeamUpdated:(NIMSuperTeam *)team
@end
- 群组移除回调
@protocol NIMTeamManagerDelegate <NSObject>
/**
* 群组移除回调
*
* @param team 被移除的群组
*/
- (void)onTeamRemoved:(NIMSuperTeam *)team
@end
群组通知
群组通知是一种消息类型 ( NIMMessageTypeNotification
) ,用户在创建群或者进入群成功之后,任何关于群的变动,云信服务器都会下发一条群通知消息。群通知消息和其他消息一样,可从 NIMConversationManager
提供的消息查询接口中获取。
-
群组通知解析步骤:
- 解析
NIMMessage
中的messageObject
字段,强类型转换为NIMNotificationObject
。 - 解析
NIMNotificationObject
中的content
字段,得到父类NIMSuperTeamNotificationContent
。 - 根据
NIMSuperTeamNotificationContent
中的notificationType
字段,将父类NIMSuperTeamNotificationContent
强类型转化为NIMSuperTeamNotificationContent
。
- 解析
-
群组通知的具体类型可以通过
NIMSuperTeamNotificationContent
的operationType
解析。 -
SDK 在收到群通知之后,会对本地缓存的群信息做出对应的修改,然后触发与修改相对应的委托事件回调。
-
群通知是接收型的消息,开发者不应该自己手动去创建和发送群通知消息。
群组通知内容 NIMSuperTeamNotificationContent
的字段说明:
operationType
: 群组通知事件类型,表示具体属于哪一种群组通知,通知种类由NIMSuperTeamOperationType
枚举定义。source
: 通知的操作者 ID ,表示谁触发了这个通知。targets
: 通知的被操作者 ID 列表,表示这个通知影响的用户群体。notifyExt
: 通知的扩展字段,这个扩展字段是由每个触发通知的操作接口定义的。目前只能由服务器的操作接口去定义这个字段。
例如:
群组踢出用户,可以调用服务器 HTTP 接口,并传入通知扩展参数。调用后会触发用户被踢出群组的事件消息通知,此时,收到消息的其他群成员就可以通过读取 NIMSuperTeamNotificationContent
的 notifyExt
字段来获取踢出时定义的扩展字段。
attachment
: 有些通知比较复杂,需要一些额外信息来辅助上层显示,目前有额外信息的群通知类型为:- 群更新通知,额外信息被封装为
NIMUpdateTeamInfoAttachment
类型。
- 群更新通知,额外信息被封装为
群消息免打扰
- 修改群免打扰状态
@protocol NIMSuperTeamManager <NSObject>
/**
* 修改群免打扰状态
*
* @param state 群通知状态
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)updateNotifyState:(NIMTeamNotifyState)state
inTeam:(NSString *)teamId
completion:(nullable NIMSuperTeamHandler)completion;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
state | NIMTeamNotifyState | 群通知状态 |
teamId | NSString | 群组ID |
completion | NIMSuperTeamHandler | 完成后的回调 |
- 查询群免打扰状态
@protocol NIMSuperTeamManager <NSObject>
/**
* 查询群免打扰状态
*
* @param teamId 群Id
*
* @return 群通知状态
*/
- (NIMTeamNotifyState)notifyStateForNewMsg:(NSString *)teamId;
@end
参数列表
参数 | 类型 | 说明 |
---|---|---|
teamId | NSString | 群组ID |