NIMSDK-iOS
载入中...
搜索中...
未找到
NIMUserManagerProtocol.h
浏览该文件的文档.
1//
2// NIMUserManagerProtocol.h
3// NIMLib
4//
5// Created by Netease.
6// Copyright (c) 2015 Netease. All rights reserved.
7//
8
9#import <Foundation/Foundation.h>
10
11NS_ASSUME_NONNULL_BEGIN
12
13@class NIMUserRequest;
14@class NIMUser;
16
17/**
18 * 好友操作Block
19 *
20 * @param error 错误信息
21 */
22typedef void(^NIMUserBlock)(NSError * __nullable error);
23
24/**
25 * 用户信息获取Block,返回NIMUser列表
26 *
27 * @param error 错误信息
28 */
29typedef void(^NIMUserInfoBlock)(NSArray<NIMUser *> * __nullable users,NSError * __nullable error);
30
31
32
33/**
34 * 用户信息修改字段
35 */
36typedef NS_ENUM(NSInteger, NIMUserInfoUpdateTag) {
37 /**
38 * 用户昵称
39 */
41 /**
42 * 用户头像
43 */
45 /**
46 * 用户签名
47 */
49 /**
50 * 用户性别。请使用指定枚举,如 {@(NIMUserInfoUpdateTagGender) : @(NIMUserGenderMale)}
51 */
53 /**
54 * 用户邮箱。请使用合法邮箱
55 */
57 /**
58 * 用户生日。具体格式为yyyy-MM-dd
59 */
61 /**
62 * 用户手机号。请使用合法手机号
63 */
65 /**
66 * 扩展字段
67 */
69
70 /**
71 * 对某些资料内容另外的反垃圾的业务ID
72 */
74};
75
76/**
77 * 好友协议委托
78 */
79@protocol NIMUserManagerDelegate <NSObject>
80
81@optional
82
83/**
84 * 好友状态发生变化 (在线)
85 *
86 * @param user 用户对象
87 */
88- (void)onFriendChanged:(NIMUser *)user;
89
90/**
91 * 黑名单列表发生变化 (在线)
92 */
93- (void)onBlackListChanged;
94
95/**
96 * 静音列表发生变化 (在线)
97 */
98- (void)onMuteListChanged;
99
100/**
101 * 用户个人信息发生变化 (在线)
102 *
103 * @param user 用户对象
104 * @discussion 出于性能和上层 APP 处理难易度的考虑,本地调用批量接口获取用户信息时不触发当前回调。
105 */
106- (void)onUserInfoChanged:(NIMUser *)user;
107
108@end
109
110/**
111 * 好友协议
112 */
113@protocol NIMUserManager <NSObject>
114
115/**
116 * 添加好友
117 *
118 * @param request 添加好友请求
119 * @param completion 完成回调
120 */
121- (void)requestFriend:(NIMUserRequest *)request
122 completion:(nullable NIMUserBlock)completion;
123
124/**
125 * 删除好友
126 *
127 * @param userId 好友Id
128 * @param completion 完成回调
129 * @discussion 不删除备注等信息
130 */
131- (void)deleteFriend:(NSString *)userId
132 completion:(nullable NIMUserBlock)completion;
133
134
135/**
136 * 删除好友
137 *
138 * @param userId 好友Id
139 * @param remove 是否同时删除备注
140 * @param completion 完成回调
141 */
142- (void)deleteFriend:(NSString *)userId
143 removeAlias:(BOOL)remove
144 completion:(nullable NIMUserBlock)completion;
145
146/**
147 * 返回我的好友列表
148 *
149 * @return NIMUser列表
150 */
151- (nullable NSArray<NIMUser *> *)myFriends;
152
153
154/**
155 * 判断是否是我的好友
156 *
157 * @param userId 用户Id
158 *
159 * @return 是否是我的好友 (云信关系)
160 */
161- (BOOL)isMyFriend:(NSString *)userId;
162
163
164/**
165 * 添加用户到黑名单
166 *
167 * @param userId 用户Id
168 * @param completion 完成回调
169 */
170- (void)addToBlackList:(NSString *)userId
171 completion:(NIMUserBlock)completion;
172
173/**
174 * 将用户从黑名单移除
175 *
176 * @param userId 用户Id
177 * @param completion 完成回调
178 */
179- (void)removeFromBlackBlackList:(NSString *)userId
180 completion:(NIMUserBlock)completion;
181
182/**
183 * 判断用户是否已被拉黑
184 *
185 * @param userId 用户Id
186 *
187 * @return 是否已被拉黑
188 */
189- (BOOL)isUserInBlackList:(NSString *)userId;
190
191/**
192 * 返回所有在黑名单中的用户列表
193 *
194 * @return 黑名单成员NIMUser列表
195 */
196- (nullable NSArray<NIMUser *> *)myBlackList;
197
198
199/**
200 * 设置消息提醒
201 *
202 * @param notify 是否提醒
203 * @param userId 用户Id
204 * @param completion 完成回调
205 */
206- (void)updateNotifyState:(BOOL)notify
207 forUser:(NSString *)userId
208 completion:(nullable NIMUserBlock)completion;
209
210
211/**
212 * 是否需要消息通知
213 *
214 * @param userId 用户Id
215 *
216 * @return 是否需要消息通知
217 */
218- (BOOL)notifyForNewMsg:(NSString *)userId;
219
220/**
221 * 静音列表
222 *
223 * @return 返回被我设置为取消消息通知的NIMUser列表
224 */
225- (nullable NSArray<NIMUser *> *)myMuteUserList;
226
227
228/**
229 * 从云信服务器批量获取用户资料
230 *
231 * @param users 用户id列表
232 * @param completion 用户信息回调
233 *
234 * @discussion 需要将用户信息交给云信托管,此接口才有效。调用此接口,不会触发 - (void)onUserInfoChanged: 回调。
235 * 该接口会将获取到的用户信息缓存在本地,所以需要避免此接口的滥调,导致存储过多无用数据到本地而撑爆缓存:如在聊天室请求请求每个聊天室用户数据将造成缓存过大而影响程序性能
236 * 本接口一次最多支持 150 个用户信息获取
237 */
238- (void)fetchUserInfos:(NSArray<NSString *> *)users
239 completion:(nullable NIMUserInfoBlock)completion;
240
241
242/**
243 * 从本地获取用户资料
244 *
245 * @param userId 用户id
246 *
247 * @return NIMUser
248 *
249 * @discussion 需要将用户信息交给云信托管,且数据已经正常缓存到本地,此接口才有效。
250 * 用户资料除自己之外,不保证其他用户资料实时更新
251 * 其他用户资料更新的时机为: 1.调用 - (void)fetchUserInfos:completion: 方法刷新用户
252 * 2.收到此用户发来消息
253 * 3.程序再次启动,此时会同步部分好友信息
254 */
255- (nullable NIMUser *)userInfo:(NSString *)userId;
256
257/**
258 * 修改自己与目标用户的关系
259 *
260 * @param user 目标用户
261 * @param completion 修改结果回调
262 * @discussion 这个接口提供了备注名的修改以及一些扩展。这些值是基于当前用户和目标用户关系的,
263 * 同一个目标用户的的属性字段会随着登录用户的改变而改变。
264 *
265 */
266- (void)updateUser:(NIMUser *)user
267 completion:(nullable NIMUserBlock)completion;
268
269
270/**
271 * 修改自己的用户资料
272 *
273 * @param values 需要更新的用户信息键值对
274 * @param completion 修改结果回调
275 *
276 * @discussion 这个接口可以一次性修改多个属性,如昵称,头像等,传入的数据键值对是 {@(NIMUserInfoUpdateTag) : NSString/NSNumber},
277 * 无效数据将被过滤。一些字段有修改限制,具体请参看 NIMUserInfoUpdateTag 的相关说明
278 */
279- (void)updateMyUserInfo:(NSDictionary<NSNumber *,id> *)values
280 completion:(nullable NIMUserBlock)completion;
281
282
283/**
284* 查找成员
285*
286* @param option 查询条件
287* @param completion 完成回调
288*/
289- (void)searchUserWithOption:(NIMUserSearchOption *)option
290 completion:(nullable NIMUserInfoBlock)completion;
291
292/**
293 * 添加好友委托
294 *
295 * @param delegate 好友委托
296 */
297- (void)addDelegate:(id<NIMUserManagerDelegate>)delegate;
298
299/**
300 * 移除好友委托
301 *
302 * @param delegate 好友委托
303 */
304- (void)removeDelegate:(id<NIMUserManagerDelegate>)delegate;
305
306@end
307
308NS_ASSUME_NONNULL_END
NIMUserInfoUpdateTag
Definition: NIMUserManagerProtocol.h:36
@ NIMUserInfoUpdateTagAntispamBusinessId
Definition: NIMUserManagerProtocol.h:73
@ NIMUserInfoUpdateTagEmail
Definition: NIMUserManagerProtocol.h:56
@ NIMUserInfoUpdateTagNick
Definition: NIMUserManagerProtocol.h:40
@ NIMUserInfoUpdateTagBirth
Definition: NIMUserManagerProtocol.h:60
@ NIMUserInfoUpdateTagMobile
Definition: NIMUserManagerProtocol.h:64
@ NIMUserInfoUpdateTagSign
Definition: NIMUserManagerProtocol.h:48
@ NIMUserInfoUpdateTagExt
Definition: NIMUserManagerProtocol.h:68
@ NIMUserInfoUpdateTagAvatar
Definition: NIMUserManagerProtocol.h:44
@ NIMUserInfoUpdateTagGender
Definition: NIMUserManagerProtocol.h:52
void(^ NIMUserBlock)(NSError *__nullable error)
Definition: NIMUserManagerProtocol.h:22
void(^ NIMUserInfoBlock)(NSArray< NIMUser * > *__nullable users, NSError *__nullable error)
Definition: NIMUserManagerProtocol.h:29
Definition: NIMUser.h:60
Definition: NIMUser.h:177
Definition: NIMUserSearchOption.h:44