超大群管理

更新时间: 2024/03/14 17:08:34

超大群概述

超大群对应的管理类为 NIMSuperTeamManager 。超大群是针对大规模群聊场景的功能。目前最多支持10000人的群聊。由于超大群场景较为特殊,并不能支持所有高级群提供的管理功能。目前超大群支持群主、管理员与普通成员三种身份。

超大群功能为增值服务,如需使用该功能,请提前开通超大群功能

创建群组

超大群需要通过服务端API创建,客户端暂时不提供接口创建。

获取群组

NIM SDK 在程序启动时会对本地群信息进行同步,所以只需要调用本地缓存接口获取群就可以了。 SDK 提供了批量获取自己的群接口、以及根据单个群 id 查询的接口。同样 SDK 也提供了远程获取群信息的接口。

从本地获取所有群组

原型

objc@protocol NIMSuperTeamManager <NSObject>
/**
 *  获取所有群组
 *
 *  @return 返回所有群组
 */
- (nullable NSArray<NIMTeam *> *)allMyTeams;
@end

从本地获取指定群组

objc@protocol NIMSuperTeamManager <NSObject>
/**
 *  根据群组ID获取具体的群组信息
 *
 *  @param teamId 群组ID
 *
 *  @return 群组信息
 */
- (nullable NIMTeam *)teamById:(NSString *)teamId;
@end

参数列表

参数 类型 说明
teamId NSString 群组 ID

从云端获取指定群组

objc@protocol NIMSuperTeamManager <NSObject>
/**
 *  获取群信息
 *
 *  @param teamId      群组ID
 *  @param completion  完成后的回调
 */
- (void)fetchTeamInfo:(NSString *)teamId 
           completion:(nullable NIMTeamFetchInfoHandler)completion
@end        

解散群组

超大群需要通过服务端API解散,客户端暂时不提供接口解散。

群成员管理

入群操作

申请加入群组

objc@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 完成后的回调

验证入群申请

同意群申请

objc@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 完成后的回调

拒绝群申请

objc@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 完成后的回调

邀请加入群组

objc@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 完成后的回调

验证入群邀请

接受入群邀请

objc@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 完成后的回调

拒绝入群邀请

objc@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 完成后的回调

踢人出群

objc@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 完成后的回调

主动退群

用户退群

objc@protocol NIMSuperTeamManager <NSObject>
/**
 *  退出群组
 *
 *  @param teamId     群组ID
 *  @param completion 完成后的回调
 */
- (void)quitTeam:(NSString *)teamId
      completion:(NIMSuperTeamHandler)completion
@end      

参数列表

参数 类型 说明
teamId NSString 群组 ID
completion NIMSuperTeamHandler 完成后的回调

用户退群成功后,相关会话信息仍然会保留,但不再能接收关于此群的消息。

获取群组成员

群组成员信息不同于用户资料,主要是和群组关联的信息。同一个用户在不同群组中自己的群成员信息也不一样。群成员信息包括群昵称,进群时间,群成员类型等等。

原型

objc@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 的回调通知上层。

获取群组成员列表

objc@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: 回调。

获取到的群成员只有云信服务器托管的群相关数据,需要开发者结合自己管理的用户数据进行界面显示。

获取指定群组成员

objc@protocol NIMSuperTeamManager <NSObject>
/**
 *  获取单个群成员信息。返回本地缓存的群成员信息,如果本地没有相应数据则返回 nil。
 *
 *  @param userId     用户ID     
 *  @param teamId     群组ID
 */
- (nullable NIMTeamMember *)teamMember:(NSString *)userId 
                                inTeam:(NSString *)teamId;
@end              

修改群成员资料

objc@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 完成后的回调
  • 更新自己的群成员昵称
objc@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                    
  • 更新自己的群成员自定义属性
objc@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原型
objc/**
 *  群信息更新字段
 */
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 完成后的回调

监听群成员变化

objc@protocol NIMTeamManagerDelegate <NSObject>
/**
 *  群组成员变动回调,包括数量增减以及成员属性变动
 *
 *  @param team 变动的群组
 */
- (void)onTeamMemberChanged:(NIMSuperTeam *)team;
@end

判断自己是否在群里

根据群组ID判断是否是我所在的群

objc@protocol NIMSuperTeamManager <NSObject>
/**
 *  根据群组ID判断是否是我所在的群
 *
 *  @param teamId 群组ID
 *
 *  @return 是否在此群组
 */
- (BOOL)isMyTeam:(NSString *)teamId;
@end

参数列表

参数 类型 说明
teamId NSString 群组ID

群主转让

objc@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 完成后的回调

增加管理员

objc@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 完成后的回调

移除管理员

objc@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 完成后的回调

禁言

禁言指定成员

objc@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 完成后的回调

禁言群全体成员

objc@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 完成后的回调

查询被禁言情况

objc@protocol NIMSuperTeamManager <NSObject>
/**
 *  获取群内被禁言的成员列表
 *
 *  @param teamId      群组ID
 *  @param completion  经验操作完成后的回调
 *  @discussion   绝大多数情况这个请求都是从本地读取缓存并同步返回,但是由于群成员信息量较大, SDK 采取的是登录后延迟拉取的策略 考虑到用户网络等问题, SDK 有可能没有及时缓存群成员信息,那么这个请求将是个带网络请求的异步操作(增量请求)。 同时这个接口会去请求本地没有缓存的群用户的资料信息,但不会触发 - (void)onUserInfoChanged: 回调。
 */
- (void)fetchTeamMutedMembers:(NSString *)teamId 
                   completion:(nullable NIMTeamMemberHandler)completion;
@end

群资料管理

编辑群资料

群主可以修改群资料,成员目前只能修改自己的信息。当修改完群组资料后,会收到一条类型为 群组资料变更 (NIMSuperTeamNotificationContent) 的群组通知消息。

具体包括:

修改群信息

objc@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 完成后的回调

更新群组名称

objc@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 完成后的回调

更新群组头像

objc@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 完成后的回调

更新群组验证方式

objc@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 完成后的回调

更新群组被邀请人验证方式

objc@protocol NIMSuperTeamManager <NSObject>
/**
 *  更新群组被邀请人验证方式
 *
 *  @param joinMode   验证方式
 *  @param teamId     群组ID
 *  @param completion 完成后的回调
 */
- (void)updateTeamBeInviteMode:(NIMTeamBeInviteMode)beInviteMode 
                        teamId:(NSString *)teamId 
                    completion:(nullable NIMTeamHandler)completion;
@end

更新群介绍

objc@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 完成后的回调

更新群公告

objc@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 完成后的回调

更新群自定义信息

objc@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 完成后的回调

监听群组变化

  • 群组更新回调
objc@protocol NIMTeamManagerDelegate <NSObject>
/**
 *  群组更新回调
 *
 *  @param team 更新的群组
 */
- (void)onTeamUpdated:(NIMSuperTeam *)team
@end
  • 群组移除回调
objc@protocol NIMTeamManagerDelegate <NSObject>
/**
 *  群组移除回调
 *
 *  @param team 被移除的群组
 */
- (void)onTeamRemoved:(NIMSuperTeam *)team
@end

群组通知

群组通知是一种消息类型 ( NIMMessageTypeNotification ) ,用户在创建群或者进入群成功之后,任何关于群的变动,云信服务器都会下发一条群通知消息。群通知消息和其他消息一样,可从 NIMConversationManager 提供的消息查询接口中获取。

  • 群组通知解析步骤:

    • 解析 NIMMessage 中的 messageObject 字段,强类型转换为 NIMNotificationObject
    • 解析 NIMNotificationObject 中的 content 字段,得到父类NIMSuperTeamNotificationContent
    • 根据 NIMSuperTeamNotificationContent 中的 notificationType 字段,将父类 NIMSuperTeamNotificationContent 强类型转化为 NIMSuperTeamNotificationContent
  • 群组通知的具体类型可以通过 NIMSuperTeamNotificationContentoperationType 解析。

  • SDK 在收到群通知之后,会对本地缓存的群信息做出对应的修改,然后触发与修改相对应的委托事件回调。

  • 群通知是接收型的消息,开发者不应该自己手动去创建和发送群通知消息。

群组通知内容 NIMSuperTeamNotificationContent 的字段说明:

  • operationType : 群组通知事件类型,表示具体属于哪一种群组通知,通知种类由 NIMSuperTeamOperationType 枚举定义。
  • source : 通知的操作者 ID ,表示谁触发了这个通知。
  • targets : 通知的被操作者 ID 列表,表示这个通知影响的用户群体。
  • notifyExt : 通知的扩展字段,这个扩展字段是由每个触发通知的操作接口定义的。目前只能由服务器的操作接口去定义这个字段。

例如: 群组踢出用户,可以调用服务器 HTTP 接口,并传入通知扩展参数。调用后会触发用户被踢出群组的事件消息通知,此时,收到消息的其他群成员就可以通过读取 NIMSuperTeamNotificationContentnotifyExt 字段来获取踢出时定义的扩展字段。

  • attachment : 有些通知比较复杂,需要一些额外信息来辅助上层显示,目前有额外信息的群通知类型为:
    • 群更新通知,额外信息被封装为 NIMUpdateTeamInfoAttachment 类型。

群消息免打扰

  • 修改群免打扰状态
objc@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 完成后的回调
  • 查询群免打扰状态
objc@protocol NIMSuperTeamManager <NSObject>
/**
 *  查询群免打扰状态
 *
 *  @param teamId 群Id
 *
 *  @return 群通知状态
 */
- (NIMTeamNotifyState)notifyStateForNewMsg:(NSString *)teamId;
@end 

参数列表

参数 类型 说明
teamId NSString 群组ID
此文档是否对你有帮助?
有帮助
去反馈
  • 超大群概述
  • 创建群组
  • 获取群组
  • 从本地获取所有群组
  • 从本地获取指定群组
  • 从云端获取指定群组
  • 解散群组
  • 群成员管理
  • 入群操作
  • 申请加入群组
  • 验证入群申请
  • 邀请加入群组
  • 验证入群邀请
  • 踢人出群
  • 主动退群
  • 获取群组成员
  • 获取群组成员列表
  • 获取指定群组成员
  • 修改群成员资料
  • 修改群信息
  • 监听群成员变化
  • 判断自己是否在群里
  • 群主转让
  • 增加管理员
  • 移除管理员
  • 禁言
  • 禁言指定成员
  • 禁言群全体成员
  • 查询被禁言情况
  • 群资料管理
  • 编辑群资料
  • 修改群信息
  • 更新群组名称
  • 更新群组头像
  • 更新群组验证方式
  • 更新群组被邀请人验证方式
  • 更新群介绍
  • 更新群公告
  • 更新群自定义信息
  • 监听群组变化
  • 群组通知
  • 群消息免打扰