NIMSDK-iOS
载入中...
搜索中...
未找到
NIMSuperTeamManagerProtocol.h
浏览该文件的文档.
1//
2// SuperTeamManagerProtocol.h
3// NIMLib
4//
5// Created by He on 2019/5/14.
6// Copyright © 2019 Netease. All rights reserved.
7//
8
9#import <Foundation/Foundation.h>
10#import "NIMTeamDefs.h"
11#import "NIMTeamMember.h"
13#import "NIMTeam.h"
15
16NS_ASSUME_NONNULL_BEGIN
17/**
18 * 超大群接口
19 */
20@protocol NIMSuperTeamManager <NSObject>
21
22/**
23 * 获取所有群组
24 *
25 * @return 返回所有群组
26 */
27- (nullable NSArray<NIMTeam *> *)allMyTeams;
28
29/**
30 * 根据群组 ID 获取具体的群组信息
31 *
32 * @param teamId 群组 ID
33 *
34 * @return 群组信息
35 * @discussion 如果自己不在群里,则该接口返回 nil
36 */
37- (nullable NIMTeam *)teamById:(NSString *)teamId;
38
39/**
40 * 根据群组ID判断是否是我所在的群
41 *
42 * @param teamId 群组ID
43 *
44 * @return 是否在此群组
45 */
46- (BOOL)isMyTeam:(NSString *)teamId;
47
48/**
49 * 退出群组
50 *
51 * @param teamId 群组ID
52 * @param completion 完成后的回调
53 */
54- (void)quitTeam:(NSString *)teamId
55 completion:(nullable NIMTeamHandler)completion;
56
57/**
58 * 邀请用户入群
59 *
60 * @param users 用户ID列表
61 * @param teamId 群组ID
62 * @param completion 完成后的回调
63 * @discussion 群主和管理员可以邀请用户
64 */
65- (void)addUsers:(NSArray<NSString *> *)users
66 toTeam:(NSString *)teamId
67 postscript:(nullable NSString *)postscript
68 attach:(nullable NSString *)attach
69 completion:(nullable NIMTeamMemberHandler)completion;
70
71/**
72 * 从群组内移除成员
73 *
74 * @param users 需要移除的用户ID列表
75 * @param teamId 群组ID
76 * @param completion 完成后的回调
77 * @discussion 群主和管理员可以移除成员,管理员不能踢群主,不能踢管理员。
78 */
79- (void)kickUsers:(NSArray<NSString *> *)users
80 fromTeam:(NSString *)teamId
81 completion:(nullable NIMTeamHandler)completion;
82
83/**
84 * 更新群组名称
85 *
86 * @param teamName 群组名称
87 * @param teamId 群组ID
88 * @param completion 完成后的回调
89 */
90- (void)updateTeamName:(NSString *)teamName
91 teamId:(NSString *)teamId
92 completion:(nullable NIMTeamHandler)completion;
93
94/**
95 * 更新群组头像
96 *
97 * @param teamAvatarUrl 群组头像Url
98 * @param teamId 群组ID
99 * @param completion 完成后的回调
100 */
101- (void)updateTeamAvatar:(NSString *)teamAvatarUrl
102 teamId:(NSString *)teamId
103 completion:(nullable NIMTeamHandler)completion;
104
105
106/**
107 * 更新群组验证方式
108 *
109 * @param joinMode 验证方式
110 * @param teamId 群组ID
111 * @param completion 完成后的回调
112 */
113- (void)updateTeamJoinMode:(NIMTeamJoinMode)joinMode
114 teamId:(NSString *)teamId
115 completion:(nullable NIMTeamHandler)completion;
116
117/**
118 * 更新群组被邀请人验证方式
119 *
120 * @param beInviteMode 邀请方式
121 * @param teamId 群组ID
122 * @param completion 完成后的回调
123 */
124- (void)updateTeamBeInviteMode:(NIMTeamBeInviteMode)beInviteMode
125 teamId:(NSString *)teamId
126 completion:(nullable NIMTeamHandler)completion;
127
128/**
129 * 更新群介绍
130 *
131 * @param intro 群介绍
132 * @param teamId 群组ID
133 * @param completion 完成后的回调
134 */
135- (void)updateTeamIntro:(NSString *)intro
136 teamId:(NSString *)teamId
137 completion:(nullable NIMTeamHandler)completion;
138
139
140/**
141 * 更新群公告
142 *
143 * @param announcement 群公告
144 * @param teamId 群组ID
145 * @param completion 完成后的回调
146 */
147- (void)updateTeamAnnouncement:(NSString *)announcement
148 teamId:(NSString *)teamId
149 completion:(nullable NIMTeamHandler)completion;
150
151/**
152 * 更新群自定义信息
153 *
154 * @param info 群自定义信息
155 * @param teamId 群组ID
156 * @param completion 完成后的回调
157 */
158- (void)updateTeamCustomInfo:(NSString *)info
159 teamId:(NSString *)teamId
160 completion:(nullable NIMTeamHandler)completion;
161
162/**
163 * 更新群信息
164 *
165 * @param values 需要更新的群信息键值对
166 * @param teamId 群组ID
167 * @param completion 完成后的回调
168 * @discussion 这个接口可以一次性修改群的多个属性,如名称,公告等,传入的数据键值对是 {@(NIMSuperTeamUpdateTag) : NSString},无效数据将被过滤.群主和管理员可修改
169 */
170- (void)updateTeamInfos:(NSDictionary<NSNumber *,NSString *> *)values
171 teamId:(NSString *)teamId
172 completion:(nullable NIMTeamHandler)completion;
173
174/**
175 * 群申请
176 *
177 * @param teamId 群组ID
178 * @param message 申请消息
179 * @param completion 完成后的回调
180 */
181- (void)applyToTeam:(NSString *)teamId
182 message:(NSString *)message
183 completion:(nullable NIMTeamApplyHandler)completion;
184
185
186/**
187 * 通过群申请
188 *
189 * @param teamId 群组ID
190 * @param userId 申请的用户ID
191 * @param completion 完成后的回调
192 */
193- (void)passApplyToTeam:(NSString *)teamId
194 userId:(NSString *)userId
195 completion:(nullable NIMTeamApplyHandler)completion;
196
197/**
198 * 拒绝群申请
199 *
200 * @param teamId 群组ID
201 * @param userId 申请的用户ID
202 * @param rejectReason 拒绝理由
203 * @param completion 完成后的回调
204 */
205- (void)rejectApplyToTeam:(NSString *)teamId
206 userId:(NSString *)userId
207 rejectReason:(NSString*)rejectReason
208 completion:(nullable NIMTeamHandler)completion;
209
210/**
211 * 更新成员群昵称
212 *
213 * @param userId 群成员ID
214 * @param newNick 新的群成员昵称
215 * @param teamId 群组ID
216 * @param completion 完成后的回调
217 */
218- (void)updateUserNick:(NSString *)userId
219 newNick:(NSString *)newNick
220 inTeam:(NSString *)teamId
221 completion:(nullable NIMTeamHandler)completion;
222
223/**
224 * 更新自己群自定义属性
225 *
226 * @param newInfo 新的自定义属性
227 * @param teamId 群组ID
228 * @param completion 完成后的回调
229 */
230- (void)updateMyCustomInfo:(NSString *)newInfo
231 inTeam:(NSString *)teamId
232 completion:(nullable NIMTeamHandler)completion;
233
234/**
235 * 添加管理员
236 *
237 * @param teamId 群组ID
238 * @param users 需要添加为管理员的用户ID列表
239 * @param completion 完成后的回调
240 */
241- (void)addManagersToTeam:(NSString *)teamId
242 users:(NSArray<NSString *> *)users
243 completion:(nullable NIMTeamHandler)completion;
244
245/**
246 * 移除管理员
247 *
248 * @param teamId 群组ID
249 * @param users 需要移除管理员的用户ID列表
250 * @param completion 完成后的回调
251 */
252- (void)removeManagersFromTeam:(NSString *)teamId
253 users:(NSArray<NSString *> *)users
254 completion:(nullable NIMTeamHandler)completion;
255
256/**
257 * 移交群主
258 *
259 * @param teamId 群组ID
260 * @param newOwnerId 新群主ID
261 * @param isLeave 是否同时离开群组
262 * @param completion 完成后的回调
263 */
264- (void)transferManagerWithTeam:(NSString *)teamId
265 newOwnerId:(NSString *)newOwnerId
266 isLeave:(BOOL)isLeave
267 completion:(nullable NIMTeamHandler)completion;
268
269/**
270 * 接受入群邀请
271 *
272 * @param teamId 群组ID
273 * @param invitorId 邀请者ID
274 * @param completion 完成后的回调
275 */
276- (void)acceptInviteWithTeam:(NSString*)teamId
277 invitorId:(NSString*)invitorId
278 completion:(nullable NIMTeamHandler)completion;
279
280
281/**
282 * 拒绝入群邀请
283 *
284 * @param teamId 群组ID
285 * @param invitorId 邀请者ID
286 * @param rejectReason 拒绝原因
287 * @param completion 完成后的回调
288 */
289- (void)rejectInviteWithTeam:(NSString*)teamId
290 invitorId:(NSString*)invitorId
291 rejectReason:(NSString*)rejectReason
292 completion:(nullable NIMTeamHandler)completion;
293
294/**
295 * 修改群通知状态
296 *
297 * @param state 群通知状态
298 * @param teamId 群组ID
299 * @param completion 完成后的回调
300 */
301- (void)updateNotifyState:(NIMTeamNotifyState)state
302 inTeam:(NSString *)teamId
303 completion:(nullable NIMTeamHandler)completion;
304
305/**
306 * 群通知状态
307 *
308 * @param teamId 群Id
309 *
310 * @return 群通知状态
311 */
312- (NIMTeamNotifyState)notifyStateForNewMsg:(NSString *)teamId;
313
314
315/**
316 * 群成员禁言
317 *
318 * @param mute 是否禁言
319 * @param userIds 用户ID
320 * @param teamId 群组ID
321 * @param completion 经验操作完成后的回调
322 * @discussion 操作成功后,云信服务器会下发禁言的群通知消息
323 */
324- (void)updateMuteState:(BOOL)mute
325 userIds:(NSArray<NSString *> *)userIds
326 inTeam:(NSString *)teamId
327 completion:(nullable NIMTeamHandler)completion;
328
329/**
330 * 禁言群全体成员
331 *
332 * @param mute 是否禁言
333 * @param teamId 群组ID
334 * @param completion 经验操作完成后的回调
335 * @discussion 操作成功后,云信服务器会下发禁言的群通知消息
336 */
337- (void)updateMuteState:(BOOL)mute
338 inTeam:(NSString *)teamId
339 completion:(nullable NIMTeamHandler)completion;
340
341/**
342 * 获取超大群组成员
343 *
344 * @param teamId 群组ID
345 * @param completion 完成后的回调
346 * @discussion 绝大多数情况这个请求都是从本地读取缓存并同步返回,但是由于群成员信息量较大, SDK 采取的是登录后延迟拉取的策略
347 * 考虑到用户网络等问题, SDK 有可能没有及时缓存群成员信息,那么这个请求将是个带网络请求的异步操作(增量请求)。
348 * 同时这个接口会去请求本地没有缓存的群用户的资料信息,但不会触发 - (void)onUserInfoChanged: 回调。
349 */
350- (void)fetchTeamMembers:(NSString *)teamId
351 option:(NIMTeamFetchMemberOption *)option
352 completion:(nullable NIMTeamMemberHandler)completion;
353
354/**
355 * 获取群内被禁言的成员列表
356 *
357 * @param teamId 群组ID
358 * @param completion 完成后的回调
359 * @discussion 绝大多数情况这个请求都是从本地读取缓存并同步返回,但是由于群成员信息量较大, SDK 采取的是登录后延迟拉取的策略
360 * 考虑到用户网络等问题, SDK 有可能没有及时缓存群成员信息,那么这个请求将是个带网络请求的异步操作(增量请求)。
361 * 同时这个接口会去请求本地没有缓存的群用户的资料信息,但不会触发 - (void)onUserInfoChanged: 回调。
362 */
363- (void)fetchTeamMutedMembers:(NSString *)teamId
364 completion:(nullable NIMTeamMemberHandler)completion;
365
366/**
367 * 获取群信息
368 *
369 * @param teamId 群组ID
370 * @param completion 完成后的回调
371 */
372- (void)fetchTeamInfo:(NSString *)teamId
373 completion:(nullable NIMTeamFetchInfoHandler)completion;
374
375
376/**
377 * 获取单个群成员信息
378 *
379 * @param userId 用户ID
380 * @param teamId 群组ID
381 * @return 返回成员信息
382 * @discussion 返回本地缓存的群成员信息,如果本地没有相应数据则返回 nil。
383 */
384- (nullable NIMTeamMember *)teamMember:(NSString *)userId
385 inTeam:(NSString *)teamId;
386
387/**
388 * 添加超大群组委托
389 *
390 * @param delegate 群组委托
391 */
392- (void)addDelegate:(id<NIMTeamManagerDelegate>)delegate;
393
394/**
395 * 移除超大群组委托
396 *
397 * @param delegate 群组委托
398 */
399- (void)removeDelegate:(id<NIMTeamManagerDelegate>)delegate;
400@end
401
402
403NS_ASSUME_NONNULL_END
NIMTeamBeInviteMode
Definition: NIMTeamDefs.h:71
void(^ NIMTeamHandler)(NSError *__nullable error)
Definition: NIMTeamDefs.h:198
NIMTeamNotifyState
Definition: NIMTeamDefs.h:159
void(^ NIMTeamFetchInfoHandler)(NSError *__nullable error, NIMTeam *__nullable team)
Definition: NIMTeamDefs.h:231
NIMTeamJoinMode
Definition: NIMTeamDefs.h:36
void(^ NIMTeamApplyHandler)(NSError *__nullable error, NIMTeamApplyStatus applyStatus)
Definition: NIMTeamDefs.h:239
void(^ NIMTeamMemberHandler)(NSError *__nullable error, NSArray< NIMTeamMember * > *__nullable members)
Definition: NIMTeamDefs.h:223
Definition: NIMTeamFetchMemberOption.h:14
Definition: NIMTeam.h:19
Definition: NIMTeamMember.h:17