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