IM 即时通讯
iOS
产品介绍
简介
主要功能
产品优势
功能介绍
帐号集成与登录
基础消息功能
群组功能
聊天室功能
聊天室标签功能
圈组功能
多端登录与互踢策略
质量数据监控台
海外数据中心
IM平滑迁移方案
接口及业务限制
更新日志
IM UIKit 更新日志
NIM SDK 开发版更新日志
NIM SDK 稳定版更新日志
体验 Demo
下载 SDK 与 Demo 源码
快速开始
跑通 IM Demo 源码
跑通圈组 Demo 源码
实现单聊消息收发(不含 UI)
实现圈组消息收发(不含 UI)
含 UI 集成
什么是 IM UIKit
IM UIKit 功能概览
快速集成 IM UIKit
组件导入
初始化与登录
界面跳转
自定义用户信息
会话列表相关
集成会话列表界面
自定义会话列表 UI
会话列表 API 概览
会话消息相关
集成会话消息界面
实现地理位置消息功能
实现音视频通话
实现自定义消息收发
自定义会话消息 UI
会话消息 API 概览
通讯录相关
集成通讯录界面
自定义通讯录 UI
通讯录 API 概览
IM UIKit API 概览
不含 UI 集成
集成 SDK
初始化
登录相关
登录 IM
多端登录与互踢
登出 IM
消息相关
消息概述
消息收发
自定义消息收发
消息配置选项
NOS 资源场景
广播消息收发
消息已读回执
消息撤回
消息重发与转发
消息更新
消息过滤
语音消息处理
本地消息插入
历史消息
最近会话
服务端会话服务
用户资料
用户关系
在线状态订阅
系统通知
离线推送
群组功能
群组概述
群组管理
群成员管理
群消息管理
超大群功能
聊天室
圈组功能
圈组概述
登录管理
服务器相关
服务器概述
服务器管理
服务器成员管理
游客功能
服务器未读数管理
频道相关
频道概述
频道管理
频道黑白名单
实时互动频道
频道分组
频道分组黑白名单
频道未读数管理
搜索服务器与频道
身份组相关
身份组概述
身份组应用场景
服务器身份组
频道身份组
频道分组身份组
用户定制权限
自定义权限项
成员权限查询与判定
身份组相关查询
圈组订阅机制
圈组消息相关
图解圈组消息流转
圈组消息收发
圈组消息撤回
圈组消息更新
圈组消息删除
消息正在输入
会话消息回复(Thread)
圈组快捷评论
圈组消息缓存
圈组消息搜索
查询历史消息
查询@我的消息
圈组系统通知相关
圈组系统通知概述
圈组系统通知收发
圈组系统通知更新
圈组离线推送
圈组内容审核
圈组第三方回调
圈组相关抄送
圈组各端接口命名差异
反垃圾
聊天扩展
其他
最佳实践
IM 登录最佳实践
聊天室重要消息投递
参考文档
iOS PushKit 配置
iOS苹果推送配置
API 参考
iOS SDK API
iOS SDK 状态码
IM 控制台指南
创建应用
注册 IM 账号
升级服务
开通聊天室功能
配置客户端应用标识
常见问题
FAQ
错题集
iOS 推送问题排查
服务协议

超大群功能

更新时间: 2023/02/02 17:43:13

超大群概述

超大群对应的管理类为 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 字段,强类型转换为 NIMSuperTeamNotificationContent
    • 解析 NIMSuperTeamNotificationContent 中的 content 字段,得到父类NIMSuperTeamNotificationContent
    • 根据 NIMSuperTeamNotificationContent 中的 notificationType 字段,将父类 NIMSuperTeamNotificationContent 强类型转化为 NIMSuperTeamNotificationContent
  • 群组通知的具体类型可以通过 NIMSuperTeamNotificationContentoperationType 解析。

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

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

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

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

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

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