ashen_23

sdk upgrade

Too many changes to show.

To preserve performance only 21 of 21+ files are displayed.

1 Pod::Spec.new do |s| 1 Pod::Spec.new do |s|
2 s.name = "HHVDoctorSDK" 2 s.name = "HHVDoctorSDK"
3 - s.version = "2.0.6.0820.0952" 3 + s.version = "2.0.6.0820.1021"
4 s.summary = "和缓视频医生 SDK" 4 s.summary = "和缓视频医生 SDK"
5 5
6 s.description = <<-DESC 6 s.description = <<-DESC
No preview for this file type
No preview for this file type
1 -//  
2 -// IMGroupExt.h  
3 -// IMGroupExt  
4 -//  
5 -// Created by tomzhu on 2017/1/23.  
6 -//  
7 -//  
8 -  
9 -#ifndef IMGroupExt_h  
10 -#define IMGroupExt_h  
11 -  
12 -#import "TIMComm+Group.h"  
13 -#import "TIMGroupManager+Ext.h"  
14 -  
15 -#endif /* IMGroupExt_h */  
1 -//  
2 -// IMMessageExt.h  
3 -// IMMessageExt  
4 -//  
5 -// Created by tomzhu on 2016/12/27.  
6 -//  
7 -//  
8 -  
9 -#ifndef ImSDK_h  
10 -#define ImSDK_h  
11 -  
12 -#import "TIMConversation+MsgExt.h"  
13 -#import "TIMMessage+MsgExt.h"  
14 -#import "TIMComm+MsgExt.h"  
15 -#import "TIMManager+MsgExt.h"  
16 -  
17 -#endif /* ImSDK_h */  
1 -//  
2 -// IMSdkComm.h  
3 -// ImSDK  
4 -//  
5 -// Created by bodeng on 10/12/14.  
6 -// Copyright (c) 2014 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef ImSDK_IMSdkComm_h  
10 -#define ImSDK_IMSdkComm_h  
11 -  
12 -@interface OMErrResp : NSObject  
13 -{  
14 - NSString* cmd; // 返回的命令字  
15 - int seq; // 请求包的seq  
16 - NSString* uin; // uin  
17 - int errCode; // 错误码  
18 - NSString* errTips; // error tips  
19 -}  
20 -  
21 -@property(nonatomic,strong) NSString* cmd;  
22 -@property(nonatomic,strong) NSString* uin;  
23 -@property(nonatomic,assign) int seq;  
24 -@property(nonatomic,assign) int errCode;  
25 -@property(nonatomic,strong) NSString* errTips;  
26 -  
27 -@end  
28 -  
29 -  
30 -/// 业务相关回调  
31 -  
32 -/**  
33 - * userid和tinyid 转换回包  
34 - * userList 存储IMUserId结构  
35 - */  
36 -@interface OMUserIdResp : NSObject{  
37 - NSArray* userList; // 用户的登录的open id  
38 -}  
39 -  
40 -  
41 -@property(nonatomic,strong) NSArray* userList;  
42 -  
43 -@end  
44 -  
45 -/**  
46 - * userid转换tinyid回调  
47 - *  
48 - * @param resp 回包结构  
49 - *  
50 - * @return 0 处理成功  
51 - */  
52 -typedef int (^OMUserIdSucc)(OMUserIdResp *resp);  
53 -  
54 -//请求回调  
55 -typedef int (^OMErr)(OMErrResp *resp);  
56 -  
57 -  
58 -/**  
59 - * 音视频回调  
60 - */  
61 -@interface OMCommandResp : NSObject{  
62 - NSData* rspbody;  
63 -}  
64 -  
65 -  
66 -@property(nonatomic,strong) NSData* rspbody;  
67 -  
68 -@end  
69 -  
70 -// relay 回调  
71 -typedef int (^OMCommandSucc)(OMCommandResp *resp);  
72 -  
73 -// request 回调  
74 -typedef void (^OMRequestSucc)(NSData * data);  
75 -typedef void (^OMRequsetFail)(int code, NSString* msg);  
76 -  
77 -/**  
78 - * UserId 结构,表示一个用户的账号信息  
79 - */  
80 -@interface IMUserId : NSObject{  
81 - NSString* uidtype; // uid 类型  
82 - unsigned int userappid;  
83 - NSString* userid; // 用户id  
84 - unsigned long long tinyid;  
85 - unsigned long long uin;  
86 -}  
87 -  
88 -@property(nonatomic,strong) NSString* uidtype;  
89 -@property(nonatomic,assign) unsigned int userappid;  
90 -@property(nonatomic,strong) NSString* userid;  
91 -@property(nonatomic,assign) unsigned long long tinyid;  
92 -@property(nonatomic,assign) unsigned long long uin;  
93 -  
94 -@end  
95 -  
96 -/**  
97 - * 一般多人音视频操作成功回调  
98 - */  
99 -typedef void (^OMMultiSucc)();  
100 -  
101 -/**  
102 - * 一般多人音视频操作失败回调  
103 - *  
104 - * @param code 错误码  
105 - * @param err 错误描述  
106 - */  
107 -typedef void (^OMMultiFail)(int code, NSString * err);  
108 -  
109 -#endif  
1 -//  
2 -// ImSDK.h  
3 -// ImSDK  
4 -//  
5 -// Created by bodeng on 24/3/15.  
6 -// Copyright (c) 2015 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef ImSDK_ImSDK_h  
10 -#define ImSDK_ImSDK_h  
11 -  
12 -#import "TIMComm.h"  
13 -#import "TIMManager.h"  
14 -#import "TIMMessage.h"  
15 -#import "TIMConversation.h"  
16 -#import "TIMGroupManager.h"  
17 -#import "TIMCallback.h"  
18 -#import "TIMFriendshipManager.h"  
19 -#import "IMSdkComm.h"  
20 -#import "TIMErrorCode.h"  
21 -#import "IMGroupExt.h"  
22 -#import "IMMessageExt.h"  
23 -  
24 -#endif  
1 -//  
2 -// TIMCallback.h  
3 -// ImSDK  
4 -//  
5 -// Created by bodeng on 30/3/15.  
6 -// Copyright (c) 2015 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef ImSDK_TIMCallback_h  
10 -#define ImSDK_TIMCallback_h  
11 -  
12 -#import "TIMComm.h"  
13 -  
14 -@class TIMMessage;  
15 -@class TIMGroupTipsElem;  
16 -@class TIMGroupInfo;  
17 -@class TIMSNSChangeInfo;  
18 -@class TIMFriendPendencyInfo;  
19 -  
20 -/**  
21 - * 连接通知回调  
22 - */  
23 -@protocol TIMConnListener <NSObject>  
24 -@optional  
25 -  
26 -/**  
27 - * 网络连接成功  
28 - */  
29 -- (void)onConnSucc;  
30 -  
31 -/**  
32 - * 网络连接失败  
33 - *  
34 - * @param code 错误码  
35 - * @param err 错误描述  
36 - */  
37 -- (void)onConnFailed:(int)code err:(NSString*)err;  
38 -  
39 -/**  
40 - * 网络连接断开(断线只是通知用户,不需要重新登陆,重连以后会自动上线)  
41 - *  
42 - * @param code 错误码  
43 - * @param err 错误描述  
44 - */  
45 -- (void)onDisconnect:(int)code err:(NSString*)err;  
46 -  
47 -  
48 -/**  
49 - * 连接中  
50 - */  
51 -- (void)onConnecting;  
52 -  
53 -@end  
54 -  
55 -  
56 -/**  
57 - * 用户在线状态通知  
58 - */  
59 -@protocol TIMUserStatusListener <NSObject>  
60 -@optional  
61 -/**  
62 - * 踢下线通知  
63 - */  
64 -- (void)onForceOffline;  
65 -  
66 -/**  
67 - * 断线重连失败  
68 - */  
69 -- (void)onReConnFailed:(int)code err:(NSString*)err;  
70 -  
71 -/**  
72 - * 用户登录的userSig过期(用户需要重新获取userSig后登录)  
73 - */  
74 -- (void)onUserSigExpired;  
75 -@end  
76 -  
77 -/**  
78 - * 页面刷新接口(如有需要未读计数刷新,会话列表刷新等)  
79 - */  
80 -@protocol TIMRefreshListener <NSObject>  
81 -@optional  
82 -/**  
83 - * 刷新会话  
84 - */  
85 -- (void)onRefresh;  
86 -  
87 -/**  
88 - * 刷新部分会话(包括多终端已读上报同步)  
89 - *  
90 - * @param conversations 会话(TIMConversation*)列表  
91 - */  
92 -- (void)onRefreshConversations:(NSArray*)conversations;  
93 -@end  
94 -  
95 -/**  
96 - * 消息回调  
97 - */  
98 -@protocol TIMMessageListener <NSObject>  
99 -@optional  
100 -/**  
101 - * 新消息回调通知  
102 - *  
103 - * @param msgs 新消息列表,TIMMessage 类型数组  
104 - */  
105 -- (void)onNewMessage:(NSArray*)msgs;  
106 -@end  
107 -  
108 -@protocol TIMMessageReceiptListener <NSObject>  
109 -@optional  
110 -/**  
111 - * 收到了已读回执  
112 - *  
113 - * @param receipts 已读回执(TIMMessageReceipt*)列表  
114 - */  
115 -- (void) onRecvMessageReceipts:(NSArray*)receipts;  
116 -@end  
117 -  
118 -/**  
119 - * 消息修改回调  
120 - */  
121 -@protocol TIMMessageUpdateListener <NSObject>  
122 -@optional  
123 -/**  
124 - * 消息修改通知  
125 - *  
126 - * @param msgs 修改的消息列表,TIMMessage 类型数组  
127 - */  
128 -- (void)onMessageUpdate:(NSArray*) msgs;  
129 -@end  
130 -  
131 -  
132 -@protocol TIMMessageRevokeListener <NSObject>  
133 -@optional  
134 -/**  
135 - * 消息撤回通知  
136 - *  
137 - * @param locator 被撤回消息的标识  
138 - */  
139 -- (void)onRevokeMessage:(TIMMessageLocator*)locator;  
140 -  
141 -@end  
142 -  
143 -/**  
144 - * 图片上传进度回调  
145 - */  
146 -@protocol TIMUploadProgressListener <NSObject>  
147 -@optional  
148 -/**  
149 - * 上传进度回调  
150 - *  
151 - * @param msg 正在上传的消息  
152 - * @param elemidx 正在上传的elem的索引  
153 - * @param taskid 任务id  
154 - * @param progress 上传进度  
155 - */  
156 -- (void)onUploadProgressCallback:(TIMMessage*)msg elemidx:(uint32_t)elemidx taskid:(uint32_t)taskid progress:(uint32_t)progress;  
157 -@end  
158 -  
159 -/**  
160 - * 群事件通知回调  
161 - */  
162 -@protocol TIMGroupEventListener <NSObject>  
163 -@optional  
164 -/**  
165 - * 群tips回调  
166 - *  
167 - * @param elem 群tips消息  
168 - */  
169 -- (void)onGroupTipsEvent:(TIMGroupTipsElem*)elem;  
170 -@end  
171 -  
172 -/**  
173 - * 好友代理事件回调  
174 - */  
175 -@protocol TIMFriendshipListener <NSObject>  
176 -@optional  
177 -  
178 -/**  
179 - * 添加好友通知  
180 - *  
181 - * @param users 好友列表(NSString*)  
182 - */  
183 -- (void)onAddFriends:(NSArray*)users;  
184 -  
185 -/**  
186 - * 删除好友通知  
187 - *  
188 - * @param identifiers 用户id列表(NSString*)  
189 - */  
190 -- (void)onDelFriends:(NSArray*)identifiers;  
191 -  
192 -/**  
193 - * 好友资料更新通知  
194 - *  
195 - * @param profiles 资料列表(TIMSNSChangeInfo *)  
196 - */  
197 -- (void)onFriendProfileUpdate:(NSArray<TIMSNSChangeInfo *> *)profiles;  
198 -  
199 -/**  
200 - * 好友申请通知  
201 - *  
202 - * @param reqs 好友申请者id列表(TIMFriendPendencyInfo *)  
203 - */  
204 -- (void)onAddFriendReqs:(NSArray<TIMFriendPendencyInfo *> *)reqs;  
205 -  
206 -@end  
207 -  
208 -#endif  
1 -//  
2 -// TIMComm+Group.h  
3 -// IMGroupExt  
4 -//  
5 -// Created by tomzhu on 2017/2/9.  
6 -//  
7 -//  
8 -  
9 -#ifndef TIMComm_Group_h  
10 -#define TIMComm_Group_h  
11 -  
12 -#import "TIMComm.h"  
13 -  
14 -@class TIMGroupPendencyMeta;  
15 -  
16 -#pragma mark - 枚举类型  
17 -  
18 -/**  
19 - * 群基本获取资料标志  
20 - */  
21 -typedef NS_ENUM(NSInteger, TIMGetGroupBaseInfoFlag) {  
22 - /**  
23 - * 不获取群组资料  
24 - */  
25 - TIM_GET_GROUP_BASE_INFO_FLAG_NONE = 0x00,  
26 - /**  
27 - * 获取群组名  
28 - */  
29 - TIM_GET_GROUP_BASE_INFO_FLAG_NAME = 0x01,  
30 - /**  
31 - * 获取创建时间  
32 - */  
33 - TIM_GET_GROUP_BASE_INFO_FLAG_CREATE_TIME = 0x01 << 1,  
34 - /**  
35 - * 获取群主id  
36 - */  
37 - TIM_GET_GROUP_BASE_INFO_FLAG_OWNER_UIN = 0x01 << 2,  
38 - /**  
39 - * (不可用)  
40 - */  
41 - TIM_GET_GROUP_BASE_INFO_FLAG_SEQ = 0x01 << 3,  
42 - /**  
43 - * 获取最近一次修改群信息时间  
44 - */  
45 - TIM_GET_GROUP_BASE_INFO_FLAG_TIME = 0x01 << 4,  
46 - /**  
47 - * (不可用)  
48 - */  
49 - TIM_GET_GROUP_BASE_INFO_FLAG_NEXT_MSG_SEQ = 0x01 << 5,  
50 - /**  
51 - * 获取最近一次发消息时间  
52 - */  
53 - TIM_GET_GROUP_BASE_INFO_FLAG_LAST_MSG_TIME = 0x01 << 6,  
54 - /**  
55 - * (不可用)  
56 - */  
57 - TIM_GET_GROUP_BASE_INFO_FLAG_APP_ID = 0x01 << 7,  
58 - /**  
59 - * 获取群成员数量  
60 - */  
61 - TIM_GET_GROUP_BASE_INFO_FLAG_MEMBER_NUM = 0x01 << 8,  
62 - /**  
63 - * 获取最大群成员数量  
64 - */  
65 - TIM_GET_GROUP_BASE_INFO_FLAG_MAX_MEMBER_NUM = 0x01 << 9,  
66 - /**  
67 - * 获取群公告  
68 - */  
69 - TIM_GET_GROUP_BASE_INFO_FLAG_NOTIFICATION = 0x01 << 10,  
70 - /**  
71 - * 获取群简介  
72 - */  
73 - TIM_GET_GROUP_BASE_INFO_FLAG_INTRODUCTION = 0x01 << 11,  
74 - /**  
75 - * 获取群头像  
76 - */  
77 - TIM_GET_GROUP_BASE_INFO_FLAG_FACE_URL = 0x01 << 12,  
78 - /**  
79 - * 获取入群类型  
80 - */  
81 - TIM_GET_GROUP_BASE_INFO_FLAG_ADD_OPTION = 0x01 << 13,  
82 - /**  
83 - * 获取群组类型  
84 - */  
85 - TIM_GET_GROUP_BASE_INFO_FLAG_GROUP_TYPE = 0x01 << 14,  
86 - /**  
87 - * 获取最后一条群消息  
88 - */  
89 - TIM_GET_GROUP_BASE_INFO_FLAG_LAST_MSG = 0x01 << 15,  
90 - /**  
91 - * 获取在线人数  
92 - */  
93 - TIM_GET_GROUP_BASE_INFO_FLAG_ONLINE_NUM = 0x01 << 16,  
94 - /**  
95 - * 获取群成员是否可见标志  
96 - */  
97 - TIM_GET_GROUP_BASE_INFO_VISIBLE = 0x01 << 17,  
98 - /**  
99 - * 获取群是否能被搜到标志  
100 - */  
101 - TIM_GET_GROUP_BASE_INFO_SEARCHABLE = 0x01 << 18,  
102 - /**  
103 - * 获取群全员禁言时间  
104 - */  
105 - TIM_GET_GROUP_BASE_INFO_ALL_SHUTUP = 0x01 << 19  
106 -};  
107 -  
108 -/**  
109 - * 群成员角色过滤方式  
110 - */  
111 -typedef NS_ENUM(NSInteger, TIMGroupMemberFilter) {  
112 - /**  
113 - * 全部成员  
114 - */  
115 - TIM_GROUP_MEMBER_FILTER_ALL = 0x00,  
116 - /**  
117 - * 群主  
118 - */  
119 - TIM_GROUP_MEMBER_FILTER_SUPER = 0x01,  
120 - /**  
121 - * 管理员  
122 - */  
123 - TIM_GROUP_MEMBER_FILTER_ADMIN = 0x02,  
124 - /**  
125 - * 普通成员  
126 - */  
127 - TIM_GROUP_MEMBER_FILTER_COMMON = 0x04,  
128 -};  
129 -  
130 -/**  
131 - * 群成员获取资料标志  
132 - */  
133 -typedef NS_ENUM(NSInteger, TIMGetGroupMemInfoFlag) {  
134 -  
135 - /**  
136 - * 入群时间  
137 - */  
138 - TIM_GET_GROUP_MEM_INFO_FLAG_JOIN_TIME = 0x01,  
139 - /**  
140 - * 消息标志  
141 - */  
142 - TIM_GET_GROUP_MEM_INFO_FLAG_MSG_FLAG = 0x01 << 1,  
143 - /**  
144 - * 角色  
145 - */  
146 - TIM_GET_GROUP_MEM_INFO_FLAG_ROLE_INFO = 0x01 << 3,  
147 - /**  
148 - * 禁言时间  
149 - */  
150 - TIM_GET_GROUP_MEM_INFO_FLAG_SHUTUP_TIME = 0x01 << 4,  
151 - /**  
152 - * 群名片  
153 - */  
154 - TIM_GET_GROUP_MEM_INFO_FLAG_NAME_CARD = 0x01 << 5,  
155 -};  
156 -  
157 -/**  
158 - * 群组操作结果  
159 - */  
160 -typedef NS_ENUM(NSInteger, TIMGroupMemberStatus) {  
161 - /**  
162 - * 操作失败  
163 - */  
164 - TIM_GROUP_MEMBER_STATUS_FAIL = 0,  
165 -  
166 - /**  
167 - * 操作成功  
168 - */  
169 - TIM_GROUP_MEMBER_STATUS_SUCC = 1,  
170 -  
171 - /**  
172 - * 无效操作,加群时已经是群成员,移除群组时不在群内  
173 - */  
174 - TIM_GROUP_MEMBER_STATUS_INVALID = 2,  
175 -  
176 - /**  
177 - * 等待处理,邀请入群时等待对方处理  
178 - */  
179 - TIM_GROUP_MEMBER_STATUS_PENDING = 3,  
180 -};  
181 -  
182 -typedef NS_ENUM(NSInteger, TIMGroupPendencyGetType) {  
183 - /**  
184 - * 申请入群  
185 - */  
186 - TIM_GROUP_PENDENCY_GET_TYPE_JOIN = 0x0,  
187 - /**  
188 - * 邀请入群  
189 - */  
190 - TIM_GROUP_PENDENCY_GET_TYPE_INVITE = 0x1,  
191 -};  
192 -  
193 -typedef NS_ENUM(NSInteger, TIMGroupPendencyHandleStatus) {  
194 - /**  
195 - * 未处理  
196 - */  
197 - TIM_GROUP_PENDENCY_HANDLE_STATUS_UNHANDLED = 0,  
198 - /**  
199 - * 被他人处理  
200 - */  
201 - TIM_GROUP_PENDENCY_HANDLE_STATUS_OTHER_HANDLED = 1,  
202 - /**  
203 - * 被用户处理  
204 - */  
205 - TIM_GROUP_PENDENCY_HANDLE_STATUS_OPERATOR_HANDLED = 2,  
206 -};  
207 -  
208 -typedef NS_ENUM(NSInteger, TIMGroupPendencyHandleResult) {  
209 - /**  
210 - * 拒绝申请  
211 - */  
212 - TIM_GROUP_PENDENCY_HANDLE_RESULT_REFUSE = 0,  
213 - /**  
214 - * 同意申请  
215 - */  
216 - TIM_GROUP_PENDENCY_HANDLE_RESULT_AGREE = 1,  
217 -};  
218 -  
219 -#pragma mark - block回调  
220 -  
221 -/**  
222 - * 群成员列表回调  
223 - *  
224 - * @param members 群成员列表,成员类型 TIMGroupMemberInfo  
225 - */  
226 -typedef void (^TIMGroupMemberSucc)(NSArray * members);  
227 -  
228 -/**  
229 - * 群列表回调  
230 - *  
231 - * @param arr 群列表,成员类型 TIMGroupInfo  
232 - */  
233 -typedef void (^TIMGroupListSucc)(NSArray * arr);  
234 -  
235 -/**  
236 - * 本人群组内成员信息回调  
237 - *  
238 - * @param selfInfo 本人成员信息  
239 - */  
240 -typedef void (^TIMGroupSelfSucc)(TIMGroupMemberInfo * selfInfo);  
241 -  
242 -/**  
243 - * 群接受消息选项回调  
244 - *  
245 - * @param opt 群接受消息选项  
246 - */  
247 -typedef void (^TIMGroupReciveMessageOptSucc)(TIMGroupReceiveMessageOpt opt);  
248 -  
249 -/**  
250 - * 群成员列表回调(分页使用)  
251 - *  
252 - * @param members 群成员(TIMGroupMemberInfo*)列表  
253 - */  
254 -typedef void (^TIMGroupMemberSuccV2)(uint64_t nextSeq, NSArray * members);  
255 -  
256 -/**  
257 - * 群搜索回调  
258 - *  
259 - * @param totalNum 搜索结果的总数  
260 - * @param groups 请求的群列表片段  
261 - */  
262 -typedef void (^TIMGroupSearchSucc)(uint64_t totalNum, NSArray * groups);  
263 -  
264 -/**  
265 - * 获取群组未决请求列表成功  
266 - *  
267 - * @param meta 未决请求元信息  
268 - * @param pendencies 未决请求列表(TIMGroupPendencyItem)数组  
269 - */  
270 -typedef void (^TIMGetGroupPendencyListSucc)(TIMGroupPendencyMeta * meta, NSArray * pendencies);  
271 -  
272 -#pragma mark - 基本类型  
273 -  
274 -/**  
275 - * 创建群参数  
276 - */  
277 -@interface TIMCreateGroupInfo : TIMCodingModel  
278 -  
279 -/**  
280 - * 群组Id,nil则使用系统默认Id  
281 - */  
282 -@property(nonatomic,strong) NSString* group;  
283 -  
284 -/**  
285 - * 群名  
286 - */  
287 -@property(nonatomic,strong) NSString* groupName;  
288 -  
289 -/**  
290 - * 群类型:Private,Public,ChatRoom,AVChatRoom,BChatRoom  
291 - */  
292 -@property(nonatomic,strong) NSString* groupType;  
293 -  
294 -/**  
295 - * 是否设置入群选项,Private类型群组请设置为false  
296 - */  
297 -@property(nonatomic,assign) BOOL setAddOpt;  
298 -  
299 -/**  
300 - * 入群选项  
301 - */  
302 -@property(nonatomic,assign) TIMGroupAddOpt addOpt;  
303 -  
304 -/**  
305 - * 最大成员数,填0则系统使用默认值  
306 - */  
307 -@property(nonatomic,assign) uint32_t maxMemberNum;  
308 -  
309 -/**  
310 - * 群公告  
311 - */  
312 -@property(nonatomic,strong) NSString* notification;  
313 -  
314 -/**  
315 - * 群简介  
316 - */  
317 -@property(nonatomic,strong) NSString* introduction;  
318 -  
319 -/**  
320 - * 群头像  
321 - */  
322 -@property(nonatomic,strong) NSString* faceURL;  
323 -  
324 -/**  
325 - * 自定义字段集合,key是NSString*类型,value是NSData*类型  
326 - */  
327 -@property(nonatomic,strong) NSDictionary* customInfo;  
328 -  
329 -/**  
330 - * 创建成员(TIMCreateGroupMemberInfo*)列表  
331 - */  
332 -@property(nonatomic,strong) NSArray* membersInfo;  
333 -  
334 -@end  
335 -  
336 -/**  
337 - * 未决请求选项  
338 - */  
339 -@interface TIMGroupPendencyOption : TIMCodingModel  
340 -  
341 -/**  
342 - * 拉取的起始时间 0:拉取最新的  
343 - */  
344 -@property(nonatomic,assign) uint64_t timestamp;  
345 -  
346 -/**  
347 - * 每页的数量  
348 - */  
349 -@property(nonatomic,assign) uint32_t numPerPage;  
350 -@end  
351 -  
352 -/**  
353 - * 未决请求元信息  
354 - */  
355 -@interface TIMGroupPendencyMeta : TIMCodingModel  
356 -  
357 -/**  
358 - * 下一次拉取的起始时间戳  
359 - */  
360 -@property(nonatomic,assign) uint64_t nextStartTime;  
361 -  
362 -/**  
363 - * 已读时间戳大小  
364 - */  
365 -@property(nonatomic,assign) uint64_t readTimeSeq;  
366 -  
367 -/**  
368 - * 未决未读数  
369 - */  
370 -@property(nonatomic,assign) uint32_t unReadCnt;  
371 -  
372 -@end  
373 -  
374 -/**  
375 - * 创建群组时的成员信息  
376 - */  
377 -@interface TIMCreateGroupMemberInfo : TIMCodingModel  
378 -  
379 -/**  
380 - * 被操作成员  
381 - */  
382 -@property(nonatomic,strong) NSString* member;  
383 -  
384 -/**  
385 - * 成员类型  
386 - */  
387 -@property(nonatomic,assign) TIMGroupMemberRole role;  
388 -  
389 -/**  
390 - * 自定义字段集合,key是NSString*类型,value是NSData*类型  
391 - */  
392 -@property(nonatomic,strong) NSDictionary* customInfo;  
393 -  
394 -@end  
395 -  
396 -/**  
397 - * 成员操作返回值  
398 - */  
399 -@interface TIMGroupMemberResult : NSObject  
400 -  
401 -/**  
402 - * 被操作成员  
403 - */  
404 -@property(nonatomic,strong) NSString* member;  
405 -/**  
406 - * 返回状态  
407 - */  
408 -@property(nonatomic,assign) TIMGroupMemberStatus status;  
409 -  
410 -@end  
411 -  
412 -/**  
413 - * 未决申请  
414 - */  
415 -@interface TIMGroupPendencyItem : TIMCodingModel  
416 -  
417 -/**  
418 - * 相关群组id  
419 - */  
420 -@property(nonatomic,strong) NSString* groupId;  
421 -  
422 -/**  
423 - * 请求者id,请求加群:请求者,邀请加群:邀请人  
424 - */  
425 -@property(nonatomic,strong) NSString* fromUser;  
426 -  
427 -/**  
428 - * 判决者id,请求加群:0,邀请加群:被邀请人  
429 - */  
430 -@property(nonatomic,strong) NSString* toUser;  
431 -  
432 -/**  
433 - * 未决添加时间  
434 - */  
435 -@property(nonatomic,assign) uint64_t addTime;  
436 -  
437 -/**  
438 - * 未决请求类型  
439 - */  
440 -@property(nonatomic,assign) TIMGroupPendencyGetType getType;  
441 -  
442 -/**  
443 - * 已决标志  
444 - */  
445 -@property(nonatomic,assign) TIMGroupPendencyHandleStatus handleStatus;  
446 -  
447 -/**  
448 - * 已决结果  
449 - */  
450 -@property(nonatomic,assign) TIMGroupPendencyHandleResult handleResult;  
451 -  
452 -/**  
453 - * 申请或邀请附加信息  
454 - */  
455 -@property(nonatomic,strong) NSString* requestMsg;  
456 -  
457 -/**  
458 - * 审批信息:同意或拒绝信息  
459 - */  
460 -@property(nonatomic,strong) NSString* handledMsg;  
461 -  
462 -  
463 -/**  
464 - * 同意申请  
465 - *  
466 - * @param msg 同意理由,选填  
467 - * @param succ 成功回调  
468 - * @param fail 失败回调,返回错误码和错误描述  
469 - */  
470 --(void) accept:(NSString*)msg succ:(TIMSucc)succ fail:(TIMFail)fail;  
471 -  
472 -/**  
473 - * 拒绝申请  
474 - *  
475 - * @param msg 拒绝理由,选填  
476 - * @param succ 成功回调  
477 - * @param fail 失败回调,返回错误码和错误描述  
478 - */  
479 --(void) refuse:(NSString*)msg succ:(TIMSucc)succ fail:(TIMFail)fail;  
480 -  
481 -  
482 -/**  
483 - * 用户自己的id  
484 - */  
485 -@property(nonatomic,strong) NSString* selfIdentifier;  
486 -  
487 -@end  
488 -  
489 -#endif /* TIMComm_Group_h */  
1 -//  
2 -// TIMComm+MsgExt.h  
3 -// IMMessageExt  
4 -//  
5 -// Created by tomzhu on 2017/1/11.  
6 -//  
7 -//  
8 -  
9 -#ifndef TIMComm_MsgExt_h  
10 -#define TIMComm_MsgExt_h  
11 -  
12 -#import <Foundation/Foundation.h>  
13 -#import "TIMComm.h"  
14 -  
15 -@class TIMSendToUsersDetailInfo;  
16 -  
17 -#pragma mark - 枚举类型  
18 -  
19 -typedef NS_ENUM(NSInteger, TIM_SNS_SYSTEM_TYPE){  
20 - /**  
21 - * 增加好友消息  
22 - */  
23 - TIM_SNS_SYSTEM_ADD_FRIEND = 0x01,  
24 - /**  
25 - * 删除好友消息  
26 - */  
27 - TIM_SNS_SYSTEM_DEL_FRIEND = 0x02,  
28 - /**  
29 - * 增加好友申请  
30 - */  
31 - TIM_SNS_SYSTEM_ADD_FRIEND_REQ = 0x03,  
32 - /**  
33 - * 删除未决申请  
34 - */  
35 - TIM_SNS_SYSTEM_DEL_FRIEND_REQ = 0x04,  
36 - /**  
37 - * 黑名单添加  
38 - */  
39 - TIM_SNS_SYSTEM_ADD_BLACKLIST = 0x05,  
40 - /**  
41 - * 黑名单删除  
42 - */  
43 - TIM_SNS_SYSTEM_DEL_BLACKLIST = 0x06,  
44 - /**  
45 - * 未决已读上报  
46 - */  
47 - TIM_SNS_SYSTEM_PENDENCY_REPORT = 0x07,  
48 - /**  
49 - * 关系链资料变更  
50 - */  
51 - TIM_SNS_SYSTEM_SNS_PROFILE_CHANGE = 0x08,  
52 - /**  
53 - * 推荐数据增加  
54 - */  
55 - TIM_SNS_SYSTEM_ADD_RECOMMEND = 0x09,  
56 - /**  
57 - * 推荐数据删除  
58 - */  
59 - TIM_SNS_SYSTEM_DEL_RECOMMEND = 0x0a,  
60 - /**  
61 - * 已决增加  
62 - */  
63 - TIM_SNS_SYSTEM_ADD_DECIDE = 0x0b,  
64 - /**  
65 - * 已决删除  
66 - */  
67 - TIM_SNS_SYSTEM_DEL_DECIDE = 0x0c,  
68 - /**  
69 - * 推荐已读上报  
70 - */  
71 - TIM_SNS_SYSTEM_RECOMMEND_REPORT = 0x0d,  
72 - /**  
73 - * 已决已读上报  
74 - */  
75 - TIM_SNS_SYSTEM_DECIDE_REPORT = 0x0e,  
76 -  
77 -  
78 -};  
79 -  
80 -/**  
81 - * 资料变更  
82 - */  
83 -typedef NS_ENUM(NSInteger, TIM_PROFILE_SYSTEM_TYPE){  
84 - /**  
85 - 好友资料变更  
86 - */  
87 - TIM_PROFILE_SYSTEM_FRIEND_PROFILE_CHANGE = 0x01,  
88 -};  
89 -  
90 -#pragma mark - block回调  
91 -  
92 -typedef void (^TIMSendToUsersFail)(int code, NSString *err, TIMSendToUsersDetailInfo *detailInfo);  
93 -  
94 -#pragma mark - 基本类型  
95 -  
96 -/**  
97 - * 发送消息给多用户的失败回调信息  
98 - */  
99 -@interface TIMSendToUsersDetailInfo : NSObject  
100 -/**  
101 - * 发送消息成功的目标用户数  
102 - */  
103 -@property(nonatomic,assign) uint32_t succCnt;  
104 -/**  
105 - * 发送消息失败的目标用户数  
106 - */  
107 -@property(nonatomic,assign) uint32_t failCnt;  
108 -/**  
109 - * 失败信息(TIMSendToUsersErrInfo*)列表  
110 - */  
111 -@property(nonatomic,strong) NSArray *errInofs;  
112 -@end  
113 -  
114 -/**  
115 - * 发送消息给多用户的失败信息  
116 - */  
117 -@interface TIMSendToUsersErrInfo : NSObject  
118 -/**  
119 - * 发送消息失败的目标用户id  
120 - */  
121 -@property(nonatomic,strong) NSString *identifier;  
122 -/**  
123 - * 错误码  
124 - */  
125 -@property(nonatomic,assign) int code;  
126 -/**  
127 - * 错误描述  
128 - */  
129 -@property(nonatomic,strong) NSString *err;  
130 -@end  
131 -  
132 -/**  
133 - * 关系链变更详细信息  
134 - */  
135 -@interface TIMSNSChangeInfo : NSObject  
136 -  
137 -/**  
138 - * 用户 identifier  
139 - */  
140 -@property(nonatomic,strong) NSString * identifier;  
141 -  
142 -/**  
143 - * 用户昵称  
144 - */  
145 -@property(nonatomic,strong) NSString * nickname;  
146 -  
147 -/**  
148 - * 申请添加时有效,添加理由  
149 - */  
150 -@property(nonatomic,strong) NSString * wording;  
151 -  
152 -/**  
153 - * 申请时填写,添加来源  
154 - */  
155 -@property(nonatomic,strong) NSString * source;  
156 -  
157 -  
158 -/**  
159 - * 备注 type=TIM_SNS_SYSTEM_SNS_PROFILE_CHANGE 有效  
160 - */  
161 -@property(nonatomic,strong) NSString * remark;  
162 -  
163 -@end  
164 -  
165 -#endif /* TIMComm_MsgExt_h */  
1 -//  
2 -// TIMComm.h  
3 -// ImSDK  
4 -//  
5 -// Created by bodeng on 29/1/15.  
6 -// Copyright (c) 2015 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef ImSDK_TIMComm_h  
10 -#define ImSDK_TIMComm_h  
11 -  
12 -#import <Foundation/Foundation.h>  
13 -  
14 -#define ERR_IMSDK_KICKED_BY_OTHERS 6208  
15 -  
16 -@protocol TIMConnListener;  
17 -@protocol TIMUserStatusListener;  
18 -@protocol TIMRefreshListener;  
19 -@protocol TIMMessageReceiptListener;  
20 -@protocol TIMMessageUpdateListener;  
21 -@protocol TIMMessageRevokeListener;  
22 -@protocol TIMUploadProgressListener;  
23 -@protocol TIMGroupEventListener;  
24 -@protocol TIMFriendshipListener;  
25 -//@protocol TIMGroupListener;  
26 -@class TIMMessage;  
27 -@class TIMImageElem;  
28 -@class TIMConversation;  
29 -@class TIMAPNSConfig;  
30 -@class TIMUserProfile;  
31 -@class TIMFriend;  
32 -@class TIMGroupInfoOption;  
33 -@class TIMGroupMemberInfoOption;  
34 -@class TIMFriendProfileOption;  
35 -@class TIMFriendResult;  
36 -  
37 -#pragma mark - 枚举类型  
38 -  
39 -/**  
40 - * 网络连接状态  
41 - */  
42 -typedef NS_ENUM(NSInteger, TIMNetworkStatus) {  
43 - /**  
44 - * 已连接  
45 - */  
46 - TIM_NETWORK_STATUS_CONNECTED = 1,  
47 - /**  
48 - * 链接断开  
49 - */  
50 - TIM_NETWORK_STATUS_DISCONNECTED = 2,  
51 -};  
52 -  
53 -  
54 -/**  
55 - * 日志级别  
56 - */  
57 -typedef NS_ENUM(NSInteger, TIMLogLevel) {  
58 - /**  
59 - * 不输出任何 sdk log  
60 - */  
61 - TIM_LOG_NONE = 0,  
62 - /**  
63 - * 输出 DEBUG,INFO,WARNING,ERROR 级别的 log  
64 - */  
65 - TIM_LOG_DEBUG = 3,  
66 - /**  
67 - * 输出 INFO,WARNING,ERROR 级别的 log  
68 - */  
69 - TIM_LOG_INFO = 4,  
70 - /**  
71 - * 输出 WARNING,ERROR 级别的 log  
72 - */  
73 - TIM_LOG_WARN = 5,  
74 - /**  
75 - * 输出 ERROR 级别的 log  
76 - */  
77 - TIM_LOG_ERROR = 6,  
78 -};  
79 -  
80 -/**  
81 - * 会话类型:  
82 - * C2C 双人聊天  
83 - * GROUP 群聊  
84 - */  
85 -typedef NS_ENUM(NSInteger, TIMConversationType) {  
86 - /**  
87 - * C2C 类型  
88 - */  
89 - TIM_C2C = 1,  
90 -  
91 - /**  
92 - * 群聊 类型  
93 - */  
94 - TIM_GROUP = 2,  
95 -  
96 - /**  
97 - * 系统消息  
98 - */  
99 - TIM_SYSTEM = 3,  
100 -};  
101 -  
102 -/**  
103 - * 消息状态  
104 - */  
105 -typedef NS_ENUM(NSInteger, TIMMessageStatus){  
106 - /**  
107 - * 消息发送中  
108 - */  
109 - TIM_MSG_STATUS_SENDING = 1,  
110 - /**  
111 - * 消息发送成功  
112 - */  
113 - TIM_MSG_STATUS_SEND_SUCC = 2,  
114 - /**  
115 - * 消息发送失败  
116 - */  
117 - TIM_MSG_STATUS_SEND_FAIL = 3,  
118 - /**  
119 - * 消息被删除  
120 - */  
121 - TIM_MSG_STATUS_HAS_DELETED = 4,  
122 - /**  
123 - * 导入到本地的消息  
124 - */  
125 - TIM_MSG_STATUS_LOCAL_STORED = 5,  
126 - /**  
127 - * 被撤销的消息  
128 - */  
129 - TIM_MSG_STATUS_LOCAL_REVOKED = 6,  
130 -};  
131 -  
132 -/**  
133 - * 消息优先级标识  
134 - */  
135 -typedef NS_ENUM(NSInteger, TIMMessagePriority) {  
136 - /**  
137 - * 高优先级,一般为红包或者礼物消息  
138 - */  
139 - TIM_MSG_PRIORITY_HIGH = 1,  
140 - /**  
141 - * 普通优先级,普通消息  
142 - */  
143 - TIM_MSG_PRIORITY_NORMAL = 2,  
144 - /**  
145 - * 低优先级,一般为点赞消息  
146 - */  
147 - TIM_MSG_PRIORITY_LOW = 3,  
148 - /**  
149 - * 最低优先级,一般为后台下发的成员进退群通知  
150 - */  
151 - TIM_MSG_PRIORITY_LOWEST = 4,  
152 -};  
153 -  
154 -/**  
155 - * 图片压缩选项  
156 - */  
157 -typedef NS_ENUM(NSInteger, TIM_IMAGE_COMPRESS_TYPE){  
158 - /**  
159 - * 原图(不压缩)  
160 - */  
161 - TIM_IMAGE_COMPRESS_ORIGIN = 0x00,  
162 - /**  
163 - * 高压缩率:图片较小,默认值  
164 - */  
165 - TIM_IMAGE_COMPRESS_HIGH = 0x01,  
166 - /**  
167 - * 低压缩:高清图发送(图片较大)  
168 - */  
169 - TIM_IMAGE_COMPRESS_LOW = 0x02,  
170 -};  
171 -  
172 -/**  
173 - * 图片类型  
174 - */  
175 -typedef NS_ENUM(NSInteger, TIM_IMAGE_TYPE){  
176 - /**  
177 - * 原图  
178 - */  
179 - TIM_IMAGE_TYPE_ORIGIN = 0x01,  
180 - /**  
181 - * 缩略图  
182 - */  
183 - TIM_IMAGE_TYPE_THUMB = 0x02,  
184 - /**  
185 - * 大图  
186 - */  
187 - TIM_IMAGE_TYPE_LARGE = 0x04,  
188 -};  
189 -  
190 -/**  
191 - * 图片格式  
192 - */  
193 -typedef NS_ENUM(NSInteger, TIM_IMAGE_FORMAT){  
194 - /**  
195 - * JPG 格式  
196 - */  
197 - TIM_IMAGE_FORMAT_JPG = 0x1,  
198 - /**  
199 - * GIF 格式  
200 - */  
201 - TIM_IMAGE_FORMAT_GIF = 0x2,  
202 - /**  
203 - * PNG 格式  
204 - */  
205 - TIM_IMAGE_FORMAT_PNG = 0x3,  
206 - /**  
207 - * BMP 格式  
208 - */  
209 - TIM_IMAGE_FORMAT_BMP = 0x4,  
210 - /**  
211 - * 未知格式  
212 - */  
213 - TIM_IMAGE_FORMAT_UNKNOWN = 0xff,  
214 -};  
215 -  
216 -/**  
217 - * 登录状态  
218 - */  
219 -typedef NS_ENUM(NSInteger, TIMLoginStatus) {  
220 - /**  
221 - * 已登陆  
222 - */  
223 - TIM_STATUS_LOGINED = 1,  
224 -  
225 - /**  
226 - * 登陆中  
227 - */  
228 - TIM_STATUS_LOGINING = 2,  
229 -  
230 - /**  
231 - * 无登陆  
232 - */  
233 - TIM_STATUS_LOGOUT = 3,  
234 -};  
235 -  
236 -/**  
237 - * 群组成员是否可见  
238 - */  
239 -typedef NS_ENUM(NSInteger, TIMGroupMemberVisibleType) {  
240 - /**  
241 - * 未知  
242 - */  
243 - TIM_GROUP_MEMBER_VISIBLE_UNKNOWN = 0x00,  
244 - /**  
245 - * 群组成员不可见  
246 - */  
247 - TIM_GROUP_MEMBER_VISIBLE_NO = 0x01,  
248 - /**  
249 - * 群组成员可见  
250 - */  
251 - TIM_GROUP_MEMBER_VISIBLE_YES = 0x02,  
252 -};  
253 -  
254 -/**  
255 - * 群组是否能被搜到  
256 - */  
257 -typedef NS_ENUM(NSInteger, TIMGroupSearchableType) {  
258 - /**  
259 - * 未知  
260 - */  
261 - TIM_GROUP_SEARCHABLE_UNKNOWN = 0x00,  
262 - /**  
263 - * 群组不能被搜到  
264 - */  
265 - TIM_GROUP_SEARCHABLE_NO = 0x01,  
266 - /**  
267 - * 群组能被搜到  
268 - */  
269 - TIM_GROUP_SEARCHABLE_YES = 0x02,  
270 -};  
271 -  
272 -/**  
273 - * 加群选项  
274 - */  
275 -typedef NS_ENUM(NSInteger, TIMGroupAddOpt) {  
276 - /**  
277 - * 禁止加群  
278 - */  
279 - TIM_GROUP_ADD_FORBID = 0,  
280 -  
281 - /**  
282 - * 需要管理员审批  
283 - */  
284 - TIM_GROUP_ADD_AUTH = 1,  
285 -  
286 - /**  
287 - * 任何人可以加入  
288 - */  
289 - TIM_GROUP_ADD_ANY = 2,  
290 -};  
291 -  
292 -/**  
293 - * 群组提示类型  
294 - */  
295 -typedef NS_ENUM(NSInteger, TIMGroupTipsType){  
296 - /**  
297 - * 成员加入  
298 - */  
299 - TIM_GROUP_TIPS_JOIN = 1,  
300 - /**  
301 - * 成员离开  
302 - */  
303 - TIM_GROUP_TIPS_QUIT = 2,  
304 - /**  
305 - * 成员被踢  
306 - */  
307 - TIM_GROUP_TIPS_KICK = 3,  
308 - /**  
309 - * 成员设置管理员  
310 - */  
311 - TIM_GROUP_TIPS_SET_ADMIN = 4,  
312 - /**  
313 - * 成员取消管理员  
314 - */  
315 - TIM_GROUP_TIPS_CANCEL_ADMIN = 5,  
316 -};  
317 -  
318 -/**  
319 - * 群消息接受选项  
320 - */  
321 -typedef NS_ENUM(NSInteger, TIMGroupReceiveMessageOpt) {  
322 - /**  
323 - * 接收消息  
324 - */  
325 - TIM_GROUP_RECEIVE_MESSAGE = 0,  
326 - /**  
327 - * 不接收消息,服务器不进行转发  
328 - */  
329 - TIM_GROUP_NOT_RECEIVE_MESSAGE = 1,  
330 - /**  
331 - * 接受消息,不进行 iOS APNs 推送  
332 - */  
333 - TIM_GROUP_RECEIVE_NOT_NOTIFY_MESSAGE = 2,  
334 -};  
335 -  
336 -/**  
337 - * 群 Tips 类型  
338 - */  
339 -typedef NS_ENUM(NSInteger, TIM_GROUP_TIPS_TYPE){  
340 - /**  
341 - * 邀请加入群 (opUser & groupName & userList)  
342 - */  
343 - TIM_GROUP_TIPS_TYPE_INVITE = 0x01,  
344 - /**  
345 - * 退出群 (opUser & groupName & userList)  
346 - */  
347 - TIM_GROUP_TIPS_TYPE_QUIT_GRP = 0x02,  
348 - /**  
349 - * 踢出群 (opUser & groupName & userList)  
350 - */  
351 - TIM_GROUP_TIPS_TYPE_KICKED = 0x03,  
352 - /**  
353 - * 设置管理员 (opUser & groupName & userList)  
354 - */  
355 - TIM_GROUP_TIPS_TYPE_SET_ADMIN = 0x04,  
356 - /**  
357 - * 取消管理员 (opUser & groupName & userList)  
358 - */  
359 - TIM_GROUP_TIPS_TYPE_CANCEL_ADMIN = 0x05,  
360 - /**  
361 - * 群资料变更 (opUser & groupName & introduction & notification & faceUrl & owner)  
362 - */  
363 - TIM_GROUP_TIPS_TYPE_INFO_CHANGE = 0x06,  
364 - /**  
365 - * 群成员资料变更 (opUser & groupName & memberInfoList)  
366 - */  
367 - TIM_GROUP_TIPS_TYPE_MEMBER_INFO_CHANGE = 0x07,  
368 -};  
369 -  
370 -/**  
371 - * 群变更信息 Tips 类型  
372 - */  
373 -typedef NS_ENUM(NSInteger, TIM_GROUP_INFO_CHANGE_TYPE){  
374 - /**  
375 - * 群名修改  
376 - */  
377 - TIM_GROUP_INFO_CHANGE_GROUP_NAME = 0x01,  
378 - /**  
379 - * 群简介修改  
380 - */  
381 - TIM_GROUP_INFO_CHANGE_GROUP_INTRODUCTION = 0x02,  
382 - /**  
383 - * 群公告修改  
384 - */  
385 - TIM_GROUP_INFO_CHANGE_GROUP_NOTIFICATION = 0x03,  
386 - /**  
387 - * 群头像修改  
388 - */  
389 - TIM_GROUP_INFO_CHANGE_GROUP_FACE = 0x04,  
390 - /**  
391 - * 群主变更  
392 - */  
393 - TIM_GROUP_INFO_CHANGE_GROUP_OWNER = 0x05,  
394 -};  
395 -  
396 -/**  
397 - * 群系统消息类型  
398 - */  
399 -typedef NS_ENUM(NSInteger, TIM_GROUP_SYSTEM_TYPE){  
400 - /**  
401 - * 申请加群请求(只有管理员会收到)  
402 - */  
403 - TIM_GROUP_SYSTEM_ADD_GROUP_REQUEST_TYPE = 0x01,  
404 - /**  
405 - * 申请加群被同意(只有申请人能够收到)  
406 - */  
407 - TIM_GROUP_SYSTEM_ADD_GROUP_ACCEPT_TYPE = 0x02,  
408 - /**  
409 - * 申请加群被拒绝(只有申请人能够收到)  
410 - */  
411 - TIM_GROUP_SYSTEM_ADD_GROUP_REFUSE_TYPE = 0x03,  
412 - /**  
413 - * 被管理员踢出群(只有被踢的人能够收到)  
414 - */  
415 - TIM_GROUP_SYSTEM_KICK_OFF_FROM_GROUP_TYPE = 0x04,  
416 - /**  
417 - * 群被解散(全员能够收到)  
418 - */  
419 - TIM_GROUP_SYSTEM_DELETE_GROUP_TYPE = 0x05,  
420 - /**  
421 - * 创建群消息(创建者能够收到)  
422 - */  
423 - TIM_GROUP_SYSTEM_CREATE_GROUP_TYPE = 0x06,  
424 - /**  
425 - * 邀请入群通知(被邀请者能够收到)  
426 - */  
427 - TIM_GROUP_SYSTEM_INVITED_TO_GROUP_TYPE = 0x07,  
428 - /**  
429 - * 主动退群(主动退群者能够收到)  
430 - */  
431 - TIM_GROUP_SYSTEM_QUIT_GROUP_TYPE = 0x08,  
432 - /**  
433 - * 设置管理员(被设置者接收)  
434 - */  
435 - TIM_GROUP_SYSTEM_GRANT_ADMIN_TYPE = 0x09,  
436 - /**  
437 - * 取消管理员(被取消者接收)  
438 - */  
439 - TIM_GROUP_SYSTEM_CANCEL_ADMIN_TYPE = 0x0a,  
440 - /**  
441 - * 群已被回收(全员接收)  
442 - */  
443 - TIM_GROUP_SYSTEM_REVOKE_GROUP_TYPE = 0x0b,  
444 - /**  
445 - * 邀请入群请求(被邀请者接收)  
446 - */  
447 - TIM_GROUP_SYSTEM_INVITE_TO_GROUP_REQUEST_TYPE = 0x0c,  
448 - /**  
449 - * 邀请加群被同意(只有发出邀请者会接收到)  
450 - */  
451 - TIM_GROUP_SYSTEM_INVITE_TO_GROUP_ACCEPT_TYPE = 0x0d,  
452 - /**  
453 - * 邀请加群被拒绝(只有发出邀请者会接收到)  
454 - */  
455 - TIM_GROUP_SYSTEM_INVITE_TO_GROUP_REFUSE_TYPE = 0x0e,  
456 - /**  
457 - * 用户自定义通知(默认全员接收)  
458 - */  
459 - TIM_GROUP_SYSTEM_CUSTOM_INFO = 0xff,  
460 -};  
461 -  
462 -/**  
463 - * 推送规则  
464 - */  
465 -typedef NS_ENUM(NSInteger, TIMOfflinePushFlag) {  
466 - /**  
467 - * 按照默认规则进行推送  
468 - */  
469 - TIM_OFFLINE_PUSH_DEFAULT = 0,  
470 - /**  
471 - * 不进行推送  
472 - */  
473 - TIM_OFFLINE_PUSH_NO_PUSH = 1,  
474 -};  
475 -  
476 -/**  
477 - * 安卓离线推送模式  
478 - */  
479 -typedef NS_ENUM(NSInteger, TIMAndroidOfflinePushNotifyMode) {  
480 - /**  
481 - * 通知栏消息  
482 - */  
483 - TIM_ANDROID_OFFLINE_PUSH_NOTIFY_MODE_NOTIFICATION = 0x00,  
484 - /**  
485 - * 不弹窗,由应用自行处理  
486 - */  
487 - TIM_ANDROID_OFFLINE_PUSH_NOTIFY_MODE_CUSTOM = 0x01,  
488 -};  
489 -  
490 -/**  
491 - * 群成员角色  
492 - */  
493 -typedef NS_ENUM(NSInteger, TIMGroupMemberRole) {  
494 - /**  
495 - * 未定义(没有获取该字段)  
496 - */  
497 - TIM_GROUP_MEMBER_UNDEFINED = 0,  
498 -  
499 - /**  
500 - * 群成员  
501 - */  
502 - TIM_GROUP_MEMBER_ROLE_MEMBER = 200,  
503 -  
504 - /**  
505 - * 群管理员  
506 - */  
507 - TIM_GROUP_MEMBER_ROLE_ADMIN = 300,  
508 -  
509 - /**  
510 - * 群主  
511 - */  
512 - TIM_GROUP_MEMBER_ROLE_SUPER = 400,  
513 -};  
514 -  
515 -/**  
516 - * 好友验证方式  
517 - */  
518 -typedef NS_ENUM(NSInteger, TIMFriendAllowType) {  
519 - /**  
520 - * 同意任何用户加好友  
521 - */  
522 - TIM_FRIEND_ALLOW_ANY = 0,  
523 -  
524 - /**  
525 - * 需要验证  
526 - */  
527 - TIM_FRIEND_NEED_CONFIRM = 1,  
528 -  
529 - /**  
530 - * 拒绝任何人加好友  
531 - */  
532 - TIM_FRIEND_DENY_ANY = 2,  
533 -};  
534 -  
535 -/**  
536 - * 性别  
537 - */  
538 -typedef NS_ENUM(NSInteger, TIMGender) {  
539 - /**  
540 - * 未知性别  
541 - */  
542 - TIM_GENDER_UNKNOWN = 0,  
543 - /**  
544 - * 男性  
545 - */  
546 - TIM_GENDER_MALE = 1,  
547 - /**  
548 - * 女性  
549 - */  
550 - TIM_GENDER_FEMALE = 2,  
551 -  
552 -};  
553 -  
554 -  
555 -#pragma mark - block 回调  
556 -  
557 -/**  
558 - * 获取消息回调  
559 - *  
560 - * @param msgs 消息列表  
561 - */  
562 -typedef void (^TIMGetMsgSucc)(NSArray * msgs);  
563 -  
564 -/**  
565 - * 一般操作成功回调  
566 - */  
567 -typedef void (^TIMSucc)(void);  
568 -  
569 -/**  
570 - * 操作失败回调  
571 - *  
572 - * @param code 错误码  
573 - * @param msg 错误描述,配合错误码使用,如果问题建议打印信息定位  
574 - */  
575 -typedef void (^TIMFail)(int code, NSString * msg);  
576 -  
577 -/**  
578 - * 进度毁掉  
579 - *  
580 - * @param curSize 已下载大小  
581 - * @param totalSize 总大小  
582 - */  
583 -typedef void (^TIMProgress)(NSInteger curSize, NSInteger totalSize);  
584 -  
585 -/**  
586 - * 登陆成功回调  
587 - */  
588 -typedef void (^TIMLoginSucc)(void);  
589 -  
590 -/**  
591 - * 获取资源  
592 - *  
593 - * @param data 资源二进制  
594 - */  
595 -typedef void (^TIMGetResourceSucc)(NSData * data);  
596 -  
597 -/**  
598 - * 日志回调  
599 - *  
600 - * @param lvl 输出的日志级别  
601 - * @param msg 日志内容  
602 - */  
603 -typedef void (^TIMLogFunc)(TIMLogLevel lvl, NSString * msg);  
604 -  
605 -/**  
606 - * 上传图片成功回调  
607 - *  
608 - * @param elem 上传图片成功后 elem  
609 - */  
610 -typedef void (^TIMUploadImageSucc)(TIMImageElem * elem);  
611 -  
612 -/**  
613 - * APNs 推送配置更新成功回调  
614 - *  
615 - * @param config 配置  
616 - */  
617 -typedef void (^TIMAPNSConfigSucc)(TIMAPNSConfig* config);  
618 -  
619 -/**  
620 - * 群创建成功  
621 - *  
622 - * @param groupId 群组 Id  
623 - */  
624 -typedef void (^TIMCreateGroupSucc)(NSString * groupId);  
625 -  
626 -/**  
627 - * 好友列表  
628 - *  
629 - * @param friends 好友列表  
630 - */  
631 -typedef void (^TIMFriendArraySucc)(NSArray<TIMFriend *> *friends);  
632 -  
633 -/**  
634 - * 获取资料回调  
635 - *  
636 - * @param profile 资料  
637 - */  
638 -typedef void (^TIMGetProfileSucc)(TIMUserProfile * profile);  
639 -  
640 -/**  
641 - * 获取资料回调  
642 - *  
643 - * @param profiles 资料  
644 - */  
645 -typedef void (^TIMUserProfileArraySucc)(NSArray<TIMUserProfile *> *profiles);  
646 -  
647 -/**  
648 - * 好友操作回调  
649 - *  
650 - * @param result 资料  
651 - */  
652 -typedef void (^TIMFriendResultSucc)(TIMFriendResult *result);  
653 -  
654 -/**  
655 - * 好友操作回调  
656 - *  
657 - * @param results 资料  
658 - */  
659 -typedef void (^TIMFriendResultArraySucc)(NSArray<TIMFriendResult *> *results);  
660 -  
661 -#pragma mark - 基本类型  
662 -  
663 -/// 实现 NSCoding 协议  
664 -@interface TIMCodingModel : NSObject <NSCoding>  
665 -  
666 -///读取实例变量,并把这些数据写到 coder 中去,序列化数据  
667 -- (void)encodeWithCoder:(NSCoder *)encoder;  
668 -  
669 -///从 coder 中读取数据,保存到相应的变量中,即反序列化数据  
670 -- (id)initWithCoder:(NSCoder *)decoder;  
671 -  
672 -@end  
673 -  
674 -/// 初始化 SDK 配置信息  
675 -@interface TIMSdkConfig : NSObject  
676 -  
677 -///用户标识接入 SDK 的应用 ID,必填  
678 -@property(nonatomic,assign) int sdkAppId;  
679 -  
680 -///用户的账号类型,必填  
681 -@property(nonatomic,strong) NSString * accountType;  
682 -  
683 -///禁用 crash 上报,默认上报 (方法已废弃,客户需要自己集成 Crash 上报逻辑)  
684 -@property(nonatomic,assign) BOOL disableCrashReport DEPRECATED_ATTRIBUTE;  
685 -  
686 -///禁止在控制台打印 log  
687 -@property(nonatomic,assign) BOOL disableLogPrint;  
688 -  
689 -///本地写 log 文件的等级,默认 DEBUG 等级  
690 -@property(nonatomic,assign) TIMLogLevel logLevel;  
691 -  
692 -///log 文件路径,不设置时为默认路径  
693 -@property(nonatomic,strong) NSString * logPath;  
694 -  
695 -///回调给 log 函数的 log 等级,默认 DEBUG 等级  
696 -@property(nonatomic,assign) TIMLogLevel logFuncLevel;  
697 -  
698 -///log 监听函数  
699 -@property(nonatomic,copy) TIMLogFunc logFunc;  
700 -  
701 -///消息数据库路径,不设置时为默认路径  
702 -@property(nonatomic,strong) NSString * dbPath;  
703 -  
704 -///网络监听器  
705 -@property(nonatomic,strong) id<TIMConnListener> connListener;  
706 -  
707 -@end  
708 -  
709 -/// 设置用户配置信息  
710 -@interface TIMUserConfig : NSObject  
711 -  
712 -///禁用本地存储(暂未实现)  
713 -//@property(nonatomic,assign) BOOL disableStorage;  
714 -  
715 -///禁止消息已读自动上报,一旦禁用自动上报,需要开发者显式调用 setReadMessage ,详情请参考官网文档 [未读消息计数](https://cloud.tencent.com/document/product/269/9151)  
716 -@property(nonatomic,assign) BOOL disableAutoReport;  
717 -  
718 -///开启 C2C 已读回执,只针对 C2C 消息生效,用户开启已读回执功能后,对方调用 setReadMessage 时会同步已读信息到本客户端,您可以在 TIMMessageReceiptListener 监听消息已读回执  
719 -@property(nonatomic,assign) BOOL enableReadReceipt;  
720 -  
721 -///不开启最近联系人(暂未实现)  
722 -//@property(nonatomic,assign) BOOL disableRecnetContact;  
723 -  
724 -///不通过 onNewMessage: 抛出最近联系人的最后一条消息(暂未实现)  
725 -//@property(nonatomic,assign) BOOL disableRecentContactNotify;  
726 -  
727 -///设置默认拉取的群组资料  
728 -@property(nonatomic,strong) TIMGroupInfoOption * groupInfoOpt;  
729 -  
730 -///设置默认拉取的群成员资料  
731 -@property(nonatomic,strong) TIMGroupMemberInfoOption * groupMemberInfoOpt;  
732 -  
733 -///关系链参数  
734 -@property(nonatomic,strong) TIMFriendProfileOption * friendProfileOpt;  
735 -  
736 -///用户登录状态监听器  
737 -@property(nonatomic,strong) id<TIMUserStatusListener> userStatusListener;  
738 -  
739 -///会话刷新监听器(未读计数、已读同步)  
740 -@property(nonatomic,strong) id<TIMRefreshListener> refreshListener;  
741 -  
742 -///消息已读回执监听器  
743 -@property(nonatomic,strong) id<TIMMessageReceiptListener> messageReceiptListener;  
744 -  
745 -///消息 svr 重写监听器  
746 -@property(nonatomic,strong) id<TIMMessageUpdateListener> messageUpdateListener;  
747 -  
748 -///消息撤回监听器  
749 -@property(nonatomic,strong) id<TIMMessageRevokeListener> messageRevokeListener;  
750 -  
751 -///文件上传进度监听器  
752 -@property(nonatomic,strong) id<TIMUploadProgressListener> uploadProgressListener;  
753 -  
754 -///群组事件通知监听器  
755 -@property(nonatomic,strong) id<TIMGroupEventListener> groupEventListener;  
756 -  
757 -///关系链数据本地缓存监听器  
758 -@property(nonatomic,strong) id<TIMFriendshipListener> friendshipListener;  
759 -  
760 -@end  
761 -  
762 -/// 登陆参数  
763 -@interface TIMLoginParam : NSObject  
764 -  
765 -///用户名  
766 -@property(nonatomic,strong) NSString* identifier;  
767 -  
768 -///鉴权 Token  
769 -@property(nonatomic,strong) NSString* userSig;  
770 -  
771 -///App 用户使用 OAuth 授权体系分配的 Appid  
772 -@property(nonatomic,strong) NSString* appidAt3rd;  
773 -  
774 -  
775 -@end  
776 -  
777 -/// APNs 配置  
778 -@interface TIMAPNSConfig : NSObject  
779 -  
780 -///是否开启推送:0-不进行设置 1-开启推送 2-关闭推送  
781 -@property(nonatomic,assign) uint32_t openPush;  
782 -  
783 -///C2C 消息声音,不设置传入 nil  
784 -@property(nonatomic,strong) NSString * c2cSound;  
785 -  
786 -///Group 消息声音,不设置传入 nil  
787 -@property(nonatomic,strong) NSString * groupSound;  
788 -  
789 -///Video 音视频邀请声音,不设置传入 nil  
790 -@property(nonatomic,strong) NSString * videoSound;  
791 -  
792 -@end  
793 -  
794 -/// SetToken 参数  
795 -@interface TIMTokenParam : NSObject  
796 -  
797 -///获取的客户端 Token 信息  
798 -@property(nonatomic,strong) NSData* token;  
799 -  
800 -///业务 ID,传递证书时分配  
801 -@property(nonatomic,assign) uint32_t busiId;  
802 -  
803 -@end  
804 -  
805 -/// 切后台参数  
806 -@interface TIMBackgroundParam : NSObject  
807 -  
808 -///C2C 未读计数  
809 -@property(nonatomic,assign) int c2cUnread;  
810 -  
811 -///群未读计数  
812 -@property(nonatomic,assign) int groupUnread;  
813 -  
814 -@end  
815 -  
816 -/// 消息定位  
817 -@interface TIMMessageLocator : NSObject  
818 -  
819 -///所属会话的 id  
820 -@property(nonatomic,strong) NSString * sessId;  
821 -  
822 -///所属会话的类型  
823 -@property(nonatomic,assign) TIMConversationType sessType;  
824 -  
825 -///消息序列号  
826 -@property(nonatomic,assign) uint64_t seq;  
827 -  
828 -///消息随机码  
829 -@property(nonatomic,assign) uint64_t rand;  
830 -  
831 -///消息时间戳  
832 -@property(nonatomic,assign) time_t time;  
833 -  
834 -///是否本人消息  
835 -@property(nonatomic,assign) BOOL isSelf;  
836 -  
837 -///是否来自撤销通知  
838 -@property(nonatomic,assign) BOOL isFromRevokeNotify;  
839 -  
840 -@end  
841 -  
842 -/// 已读回执  
843 -@interface TIMMessageReceipt : NSObject  
844 -  
845 -///已读回执对应的会话(目前只支持 C2C 会话)  
846 -@property(nonatomic,strong) TIMConversation * conversation;  
847 -  
848 -///收到已读回执时,这个时间戳之前的消息都已读  
849 -@property(nonatomic,assign) time_t timestamp;  
850 -@end  
851 -  
852 -/// Android 离线推送配置  
853 -@interface TIMAndroidOfflinePushConfig : NSObject  
854 -  
855 -///离线推送时展示标签  
856 -@property(nonatomic,strong) NSString * title;  
857 -  
858 -///Android 离线 Push 时声音字段信息  
859 -@property(nonatomic,strong) NSString * sound;  
860 -  
861 -///离线推送时通知形式  
862 -@property(nonatomic,assign) TIMAndroidOfflinePushNotifyMode notifyMode;  
863 -  
864 -@end  
865 -  
866 -/// iOS 离线推送配置  
867 -@interface TIMIOSOfflinePushConfig : NSObject  
868 -  
869 -///离线 Push 时声音字段信息  
870 -@property(nonatomic,strong) NSString * sound;  
871 -  
872 -///忽略 badge 计数  
873 -@property(nonatomic,assign) BOOL ignoreBadge;  
874 -  
875 -@end  
876 -  
877 -/// 群组内的本人信息  
878 -@interface TIMGroupSelfInfo : NSObject  
879 -  
880 -///加入群组时间  
881 -@property(nonatomic,assign) uint32_t joinTime;  
882 -  
883 -///群组中的角色  
884 -@property(nonatomic,assign) TIMGroupMemberRole role;  
885 -  
886 -///群组消息接收选项  
887 -@property(nonatomic,assign) TIMGroupReceiveMessageOpt recvOpt;  
888 -  
889 -///群组中的未读消息数  
890 -@property(nonatomic,assign) uint32_t unReadMessageNum;  
891 -  
892 -@end  
893 -  
894 -/// 群资料信息  
895 -@interface TIMGroupInfo : TIMCodingModel  
896 -  
897 -///群组 Id  
898 -@property(nonatomic,strong) NSString* group;  
899 -  
900 -///群名  
901 -@property(nonatomic,strong) NSString* groupName;  
902 -  
903 -///群创建人/管理员  
904 -@property(nonatomic,strong) NSString * owner;  
905 -  
906 -///群类型:Private,Public,ChatRoom  
907 -@property(nonatomic,strong) NSString* groupType;  
908 -  
909 -///群创建时间  
910 -@property(nonatomic,assign) uint32_t createTime;  
911 -  
912 -///最近一次群资料修改时间  
913 -@property(nonatomic,assign) uint32_t lastInfoTime;  
914 -  
915 -///最近一次发消息时间  
916 -@property(nonatomic,assign) uint32_t lastMsgTime;  
917 -  
918 -///最大成员数  
919 -@property(nonatomic,assign) uint32_t maxMemberNum;  
920 -  
921 -///群成员数量  
922 -@property(nonatomic,assign) uint32_t memberNum;  
923 -  
924 -///入群类型  
925 -@property(nonatomic,assign) TIMGroupAddOpt addOpt;  
926 -  
927 -///群公告  
928 -@property(nonatomic,strong) NSString* notification;  
929 -  
930 -///群简介  
931 -@property(nonatomic,strong) NSString* introduction;  
932 -  
933 -///群头像  
934 -@property(nonatomic,strong) NSString* faceURL;  
935 -  
936 -///最后一条消息  
937 -@property(nonatomic,strong) TIMMessage* lastMsg;  
938 -  
939 -///在线成员数量  
940 -@property(nonatomic,assign) uint32_t onlineMemberNum;  
941 -  
942 -///群组是否被搜索类型  
943 -@property(nonatomic,assign) TIMGroupSearchableType isSearchable;  
944 -  
945 -///群组成员可见类型  
946 -@property(nonatomic,assign) TIMGroupMemberVisibleType isMemberVisible;  
947 -  
948 -///是否全员禁言  
949 -@property(nonatomic,assign) BOOL allShutup;  
950 -  
951 -///群组中的本人信息  
952 -@property(nonatomic,strong) TIMGroupSelfInfo* selfInfo;  
953 -  
954 -///自定义字段集合,key 是 NSString* 类型,value 是 NSData* 类型  
955 -@property(nonatomic,strong) NSDictionary* customInfo;  
956 -  
957 -@end  
958 -  
959 -/// 事件上报信息  
960 -@interface TIMEventReportItem : NSObject  
961 -  
962 -///事件 id  
963 -@property(nonatomic,assign) uint32_t event;  
964 -  
965 -///错误码  
966 -@property(nonatomic,assign) uint32_t code;  
967 -  
968 -///错误描述  
969 -@property(nonatomic,strong) NSString * desc;  
970 -  
971 -///事件延迟(单位 ms)  
972 -@property(nonatomic,assign) uint32_t delay;  
973 -  
974 -@end  
975 -  
976 -/// 获取某个群组资料  
977 -@interface TIMGroupInfoOption : NSObject  
978 -  
979 -///需要获取的群组信息标志(TIMGetGroupBaseInfoFlag),默认为0xffffff  
980 -@property(nonatomic,assign) uint64_t groupFlags;  
981 -  
982 -///需要获取群组资料的自定义信息(NSString*)列表  
983 -@property(nonatomic,strong) NSArray * groupCustom;  
984 -  
985 -@end  
986 -  
987 -/// 需要某个群成员资料  
988 -@interface TIMGroupMemberInfoOption : NSObject  
989 -  
990 -///需要获取的群成员标志(TIMGetGroupMemInfoFlag),默认为0xffffff  
991 -@property(nonatomic,assign) uint64_t memberFlags;  
992 -  
993 -///需要获取群成员资料的自定义信息(NSString*)列表  
994 -@property(nonatomic,strong) NSArray * memberCustom;  
995 -  
996 -@end  
997 -  
998 -/// 群成员资料  
999 -@interface TIMGroupMemberInfo : TIMCodingModel  
1000 -  
1001 -///成员  
1002 -@property(nonatomic,strong) NSString* member;  
1003 -  
1004 -///群名片  
1005 -@property(nonatomic,strong) NSString* nameCard;  
1006 -  
1007 -///加入群组时间  
1008 -@property(nonatomic,assign) time_t joinTime;  
1009 -  
1010 -///成员类型  
1011 -@property(nonatomic,assign) TIMGroupMemberRole role;  
1012 -  
1013 -///禁言结束时间(时间戳)  
1014 -@property(nonatomic,assign) uint32_t silentUntil;  
1015 -  
1016 -///自定义字段集合,key 是 NSString*类型,value 是 NSData*类型  
1017 -@property(nonatomic,strong) NSDictionary* customInfo;  
1018 -  
1019 -@end  
1020 -  
1021 -///资料与关系链  
1022 -@interface TIMFriendProfileOption : NSObject  
1023 -  
1024 -///关系链最大缓存时间(默认缓存一天;获取资料和关系链超过缓存时间,将自动向服务器发起请求)  
1025 -@property NSInteger expiredSeconds;  
1026 -  
1027 -@end  
1028 -  
1029 -///用户资料  
1030 -@interface TIMUserProfile : TIMCodingModel  
1031 -  
1032 -///用户 identifier  
1033 -@property(nonatomic,strong) NSString* identifier;  
1034 -  
1035 -///用户昵称  
1036 -@property(nonatomic,strong) NSString* nickname;  
1037 -  
1038 -///好友验证方式  
1039 -@property(nonatomic,assign) TIMFriendAllowType allowType;  
1040 -  
1041 -///用户头像  
1042 -@property(nonatomic,strong) NSString* faceURL;  
1043 -  
1044 -///用户签名  
1045 -@property(nonatomic,strong) NSData* selfSignature;  
1046 -  
1047 -///用户性别  
1048 -@property(nonatomic,assign) TIMGender gender;  
1049 -  
1050 -///用户生日  
1051 -@property(nonatomic,assign) uint32_t birthday;  
1052 -  
1053 -///用户区域  
1054 -@property(nonatomic,strong) NSData* location;  
1055 -  
1056 -///用户语言  
1057 -@property(nonatomic,assign) uint32_t language;  
1058 -  
1059 -///等级  
1060 -@property(nonatomic,assign) uint32_t level;  
1061 -  
1062 -///角色  
1063 -@property(nonatomic,assign) uint32_t role;  
1064 -  
1065 -///自定义字段集合,key 是 NSString 类型,value 是 NSData 类型或者 NSNumber 类型(key 值按照后台配置的字符串传入)  
1066 -@property(nonatomic,strong) NSDictionary* customInfo;  
1067 -  
1068 -@end  
1069 -  
1070 -/**  
1071 - * 好友  
1072 - */  
1073 -@interface TIMFriend : TIMCodingModel  
1074 -  
1075 -/**  
1076 - * 好友identifier  
1077 - */  
1078 -@property(nonatomic,strong) NSString *identifier;  
1079 -  
1080 -/**  
1081 - * 好友备注(最大96字节,获取自己资料时,该字段为空)  
1082 - */  
1083 -@property(nonatomic,strong) NSString *remark;  
1084 -  
1085 -/**  
1086 - * 分组名称 NSString* 列表  
1087 - */  
1088 -@property(nonatomic,strong) NSArray *groups;  
1089 -  
1090 -/**  
1091 - * 申请时的添加理由  
1092 - */  
1093 -@property(nonatomic,strong) NSString *addWording;  
1094 -  
1095 -/**  
1096 - * 申请时的添加来源  
1097 - */  
1098 -@property(nonatomic,strong) NSString *addSource;  
1099 -  
1100 -/**  
1101 - * 添加时间  
1102 - */  
1103 -@property(nonatomic,assign) uint64_t addTime;  
1104 -  
1105 -///自定义字段集合,key 是 NSString 类型,value 是 NSData 类型或者 NSNumber 类型(key 值按照后台配置的字符串传入)  
1106 -@property(nonatomic,strong) NSDictionary* customInfo;  
1107 -  
1108 -///好友资料  
1109 -@property(nonatomic,strong) TIMUserProfile *profile;  
1110 -  
1111 -@end  
1112 -  
1113 -#endif  
1 -//  
2 -// TIMConversation+MsgExt.h  
3 -// IMMessageExt  
4 -//  
5 -// Created by tomzhu on 2016/12/27.  
6 -//  
7 -//  
8 -  
9 -#ifndef TIMConversation_h  
10 -#define TIMConversation_h  
11 -  
12 -#import "TIMConversation.h"  
13 -#import "TIMMessage+MsgExt.h"  
14 -  
15 -@interface TIMConversation (MsgExt)  
16 -  
17 -/**  
18 - * 保存会话消息  
19 - *  
20 - * 保存消息到消息列表,这里只保存在本地。  
21 - *  
22 - * @param msg 消息体  
23 - * @param sender 发送方  
24 - * @param isReaded 是否已读,如果发送方是自己,默认已读  
25 - *  
26 - * @return 0:成功;1:失败  
27 - */  
28 -- (int)saveMessage:(TIMMessage*)msg sender:(NSString*)sender isReaded:(BOOL)isReaded;  
29 -  
30 -/**  
31 - * 获取会话漫游消息  
32 - *  
33 - * 1. 登录后可以获取漫游消息,单聊和群聊消息免费漫游7天,用户有额外消息漫游需求时,可前往 [IM 控制台](https://console.cloud.tencent.com/avc) -> 功能配置 -> 消息 ->消息漫游时长 购买,具体资费请参考 [价格说明](https://cloud.tencent.com/document/product/269/11673)。  
34 - * 2. 如果本地消息全部都是连续的,则不会通过网络获取,如果本地消息不连续,会通过网络获取断层消息。  
35 - * 3. 对于图片、语音等资源类消息,消息体只会包含描述信息,需要通过额外的接口下载数据,详情请参考 [消息收发](https://cloud.tencent.com/document/product/269/9150)中的 "消息解析" 部分文档。  
36 - *  
37 - * @param count 获取数量  
38 - * @param last 上次最后一条消息,如果 last 为 nil,从最新的消息开始读取  
39 - * @param succ 成功时回调  
40 - * @param fail 失败时回调  
41 - *  
42 - * @return 0:本次操作成功;1:本次操作失败  
43 - */  
44 -- (int)getMessage:(int)count last:(TIMMessage*)last succ:(TIMGetMsgSucc)succ fail:(TIMFail)fail;  
45 -  
46 -/**  
47 - * 向前获取会话漫游消息  
48 - *  
49 - * 调用方式和 getMessage 一样,区别是 getMessage 获取的是时间更老的消息,主要用于下拉 Tableview 刷新消息数据,getMessageForward 获取的是时间更新的消息,主要用于上拉 Tableview 刷新消息数据。  
50 - *  
51 - * @param count 获取数量  
52 - * @param last 上次最后一条消息,如果 last 为 nil,从最新的消息开始读取  
53 - * @param succ 成功时回调  
54 - * @param fail 失败时回调  
55 - *  
56 - * @return 0:本次操作成功;1:本次操作失败  
57 - */  
58 -- (int)getMessageForward:(int)count last:(TIMMessage*)last succ:(TIMGetMsgSucc)succ fail:(TIMFail)fail;  
59 -  
60 -/**  
61 - * 获取本地会话消息  
62 - *  
63 - * 1. 对于单聊,登录后可以获取本地缓存消息  
64 - * 2. 对于群组,开启最近联系人漫游(登录之后 SDK 默认开启,可以通过 TIMUserConfig 里面的 disableRecnetContact 关闭)的情况下,登录后只能获取最近一条消息,可通过 getMessage 获取漫游消息  
65 - *  
66 - * @param count 获取数量  
67 - * @param last 上次最后一条消息  
68 - * @param succ 成功时回调  
69 - * @param fail 失败时回调  
70 - *  
71 - * @return 0:本次操作成功;1:本次操作失败  
72 - */  
73 -- (int)getLocalMessage:(int)count last:(TIMMessage*)last succ:(TIMGetMsgSucc)succ fail:(TIMFail)fail;  
74 -  
75 -/**  
76 - * 获取指定会话消息  
77 - *  
78 - * @param locators 消息定位符(TIMMessageLocator)数组  
79 - * @param succ 成功时回调  
80 - * @param fail 失败时回调  
81 - *  
82 - * @return 0:本次操作成功;1:本次操作失败  
83 - */  
84 -- (int)findMessages:(NSArray*)locators succ:(TIMGetMsgSucc)succ fail:(TIMFail)fail;  
85 -  
86 -/**  
87 - * 撤回消息  
88 - *  
89 - * 1. 仅 C2C 和 GROUP 会话有效、onlineMessage 无效、AVChatRoom 和 BChatRoom 无效。  
90 - * 2. 可以在 TIMUserConfig 设置的 TIMMessageRevokeListener 监听 onRevokeMessage 消息撤回回调。  
91 - * 3. 遍历本地消息列表,如果消息的 respondsToLocator 函数返回 YES,则是对应的消息,您可以在 UI 上执行删除操作,具体可以参考 TMessageController.h 里面的 onRevokeMessage 回调的实现。  
92 - *  
93 - * @param msg 被撤回的消息  
94 - * @param succ 成功时回调  
95 - * @param fail 失败时回调  
96 - *  
97 - * @return 0:本次操作成功;1:本次操作失败  
98 - */  
99 -- (int)revokeMessage:(TIMMessage*)msg succ:(TIMSucc)succ fail:(TIMFail)fail;  
100 -  
101 -/**  
102 - * 同步群的消息撤回通知  
103 - *  
104 - * 针对群组,断线重连后,如果用户处于群组聊天界面,需要业务端主动同步该群组会话的消息撤回通知。其他场景不需要主动同步消息撤回通知。  
105 - *  
106 - * @param succ 成功时回调,同步的通知会通过 TIMMessageRevokeListener 抛出  
107 - * @param fail 失败时回调  
108 - *  
109 - * @return 0 本次操作成功  
110 - */  
111 -- (int)syncRevokeNotify:(TIMSucc)succ fail:(TIMFail)fail;  
112 -  
113 -/**  
114 - * 删除本地会话消息  
115 - *  
116 - * 可以在保留会话同时删除本地的会话消息。  
117 - *  
118 - * @param succ 成功时回调  
119 - * @param fail 失败时回调  
120 - *  
121 - * @return 0 本次操作成功  
122 - */  
123 -- (int)deleteLocalMessage:(TIMSucc)succ fail:(TIMFail)fail;  
124 -  
125 -/**  
126 - * 设置已读消息  
127 - *  
128 - * 1. 如果在 TIMUserConfig 关闭了自动已读上报(设置 disableAutoReport 为 YES),这里需要显示调用 setReadMessage ,消息的已读状态才会改变。  
129 - * 2. 如果在 TIMUserConfig 开启了消息回执(设置 enableReadReceipt 为 YES),收消息的用户需要显示调用 setReadMessage ,发消息的用户才能通过 TIMMessageReceiptListener 监听到消息的已读回执。  
130 - * 3. 如果您需要设置单条消息的已读状态,请使用 TIMMessage+MsgExt.h 中的 setCustomInt 自定义字段接口设置,通过 customInt 获取,需要注意的是,这个接口设置的字段只在本地保存,如果切换了终端,或则 APP 被卸载,这个值都会失效。  
131 - *  
132 - * @param readed 会话内最近一条已读的消息,nil 表示上报最新消息  
133 - *  
134 - * @param succ 成功时回调  
135 - * @param fail 失败时回调  
136 - *  
137 - * @return 0 表示成功  
138 - */  
139 -- (int)setReadMessage:(TIMMessage*)readed succ:(TIMSucc)succ fail:(TIMFail)fail;  
140 -  
141 -/**  
142 - * 获取会话的未读计数  
143 - *  
144 - * 1. 单终端,未卸载 APP 的情况下,您可以通过当前接口获取准确的未读计数。  
145 - * 2. 如果需要在多终端或则程序 APP 卸载重装后未读计数依然准确,请设置 TIMUserConfig 的 disableAutoReport 为 YES,然后显示调用 setReadMessage。详情请参考 [未读消息计数](https://cloud.tencent.com/document/product/269/9151)  
146 - *  
147 - * @return 返回未读计数  
148 - */  
149 -- (int)getUnReadMessageNum;  
150 -  
151 -/**  
152 - * 获取最后一条消息  
153 - *  
154 - * @return 最后一条消息  
155 - */  
156 -- (TIMMessage*)getLastMsg;  
157 -  
158 -/**  
159 - * 将消息导入本地数据库  
160 - *  
161 - * @param msgs 消息(TIMMessage*)列表  
162 - *  
163 - * @return 0:成功;1:失败  
164 - */  
165 -- (int)importMessages:(NSArray*)msgs;  
166 -  
167 -/**  
168 - * 设置会话草稿  
169 - *  
170 - * UI 展示最近联系人列表时,时常会展示用户的草稿内容,ImSDK 提供了设置和获取草稿的接口,用户可以通过此接口设置会话的草稿信息。草稿信息会存本地数据库,重新登录后依然可以获取。  
171 - *  
172 - * @param draft 草稿内容,详情请参考 TIMMessage+MsgExt.h 里面的 TIMMessageDraft 定义  
173 - *  
174 - * @return 0:成功;1:失败  
175 - */  
176 -- (int)setDraft:(TIMMessageDraft*)draft;  
177 -  
178 -/**  
179 - * 获取会话草稿  
180 - *  
181 - * @return 草稿内容,没有草稿返回 nil  
182 - */  
183 -- (TIMMessageDraft*)getDraft;  
184 -  
185 -/**  
186 - * 禁用本会话的存储(暂未实现)  
187 - *  
188 - * 1. 需要 initSdk 之后调用  
189 - * 2. 只对当前初始化有效,重启后需要重新设置  
190 - */  
191 -- (void)disableStorage;  
192 -  
193 -@end  
194 -  
195 -#endif /* TIMConversation_h */  
1 -//  
2 -// TIMConversation.h  
3 -// ImSDK  
4 -//  
5 -// Created by bodeng on 28/1/15.  
6 -// Copyright (c) 2015 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef ImSDK_TIMConversation_h  
10 -#define ImSDK_TIMConversation_h  
11 -  
12 -#import "TIMComm.h"  
13 -#import "TIMCallback.h"  
14 -  
15 -@class TIMMessage;  
16 -  
17 -/**  
18 - * 会话  
19 - */  
20 -@interface TIMConversation : NSObject  
21 -  
22 -/**  
23 - * 发送消息  
24 - *  
25 - * TIMMessage 由多个 TIMElem 组成,每个 TIMElem 可以是文本和图片,也就是说每一条消息可包含多个文本和多张图片。详情请参考官网文档 [消息收发](https://cloud.tencent.com/document/product/269/9150)  
26 - *  
27 - * @param msg 消息体  
28 - * @param succ 发送成功时回调  
29 - * @param fail 发送失败时回调  
30 - *  
31 - * @return 0:操作成功;1:操作失败  
32 - */  
33 -- (int)sendMessage:(TIMMessage*)msg succ:(TIMSucc)succ fail:(TIMFail)fail;  
34 -  
35 -/**  
36 - * 发送在线消息(服务器不保存消息)  
37 - *  
38 - * 1. 对于某些场景,需要发送在线消息,即用户在线时收到消息,如果用户不在线,下次登录也不会看到消息,可用于通知类消息,这种消息不会进行存储,也不会计入未读计数。发送接口与 sendMessage 类似。  
39 - * 2. 暂不支持 AVChatRoom 和 BChatRoom 类型。  
40 - *  
41 - * @param msg 消息体  
42 - * @param succ 成功回调  
43 - * @param fail 失败回调  
44 - *  
45 - * @return 0:操作成功;1:操作失败  
46 - */  
47 -- (int)sendOnlineMessage:(TIMMessage*)msg succ:(TIMSucc)succ fail:(TIMFail)fail;  
48 -  
49 -/**  
50 - * 获取会话人  
51 - *  
52 - * C2C:对方账号;Group:群组Id。  
53 - *  
54 - * 对同一个 C2C 会话或则群聊会话,getReceiver 获取的会话人都是固定的,C2C 获取的是对方账号,Group 获取的是群组 Id。  
55 - *  
56 - * @return 会话人  
57 - */  
58 -- (NSString*)getReceiver;  
59 -  
60 -/**  
61 - * 获取群名称  
62 - *  
63 - * 获取群名称,只有群会话有效。  
64 - *  
65 - * @return 群名称  
66 - */  
67 -- (NSString*)getGroupName;  
68 -  
69 -/**  
70 - * 获取会话类型  
71 - *  
72 - * @return 会话类型  
73 - */  
74 -- (TIMConversationType)getType;  
75 -  
76 -/**  
77 - * 获取自己的 id  
78 - *  
79 - * @return 用户 id  
80 - */  
81 -- (NSString*)getSelfIdentifier;  
82 -  
83 -@end  
84 -  
85 -  
86 -#endif  
1 -//  
2 -// TIMErrorCode.h  
3 -// ImSDK  
4 -//  
5 -// Created by jameskhdeng on 2018/11/23.  
6 -// Copyright © 2018 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef TIMErrorCode_h  
10 -#define TIMErrorCode_h  
11 -  
12 -enum ERROR_CODE {  
13 - ERR_SUCC = 0,  
14 - ERR_PARSE_RESPONSE_FAILED = 6001, //解析响应失败  
15 - ERR_SERIALIZE_REQ_FAILED = 6002, //序列化请求失败  
16 - ERR_NO_SUCC_RESULT = 6003, //批量操作无成功结果  
17 - ERR_INVALID_CONVERSATION = 6004, //IM: 无效会话  
18 - ERR_LOADMSG_FAILED = 6005, //IM: 加载本地消息存储失败  
19 - ERR_FILE_TRANS_AUTH_FAILED = 6006, //IM: 文件传输 - 鉴权失败  
20 - ERR_FILE_TRANS_NO_SERVER = 6007, //IM: 文件传输 - 获取svr失败  
21 - ERR_FILE_TRANS_UPLOAD_FAILED = 6008, //IM: 文件传输 - 上传失败  
22 - ERR_FILE_TRANS_DOWNLOAD_FAILED = 6009, //IM: 文件传输 - 下载失败  
23 - ERR_HTTP_REQ_FAILED = 6010, //HTTP请求失败  
24 - ERR_TO_USER_INVALID = 6011, //IM: 无效接收方  
25 - ERR_REQUEST_TIMEOUT = 6012, //请求超时  
26 - ERR_SDK_NOT_INITIALIZED = 6013, //SDK未初始化  
27 - ERR_SDK_NOT_LOGGED_IN = 6014, //SDK未登录  
28 - ERR_IN_PROGESS = 6015, //执行中  
29 - ERR_INVALID_MSG_ELEM = 6016, //IM: 无效消息elem  
30 - ERR_INVALID_PARAMETERS = 6017, //API参数无效  
31 - ERR_INIT_CORE_FAIL = 6018, //INIT CORE模块失败  
32 - ERR_DATABASE_OPERATE_FAILED = 6019, //本地数据库操作失败  
33 - ERR_EXPIRED_SESSION_NODE = 6020, //SessionNode为null  
34 - ERR_INVALID_SDK_OBJECT = 6021, //无效的imsdk对象,例如用户自己生成TIMImage,或内部赋值错误导致的sdk对象无效  
35 - ERR_IO_OPERATION_FAILED = 6022, //本地IO操作失败  
36 - ERR_LOGGED_OUT_BEFORE_LOGIN_FINISHED = 6023, //在登录完成前进行了登出(在登录时返回)  
37 - ERR_TLSSDK_NOT_INITIALIZED = 6024, //tlssdk未初始化  
38 - ERR_TLSSDK_USER_NOT_FOUND = 6025, //TLSSDK没有找到相应的用户信息  
39 - ERR_NO_PREVIOUS_LOGIN = 6026, //自动登陆时并没有登陆过该用户  
40 -  
41 - ERR_BIND_FAIL_UNKNOWN = 6100, //QALSDK未知原因BIND失败  
42 - ERR_BIND_FAIL_NO_SSOTICKET = 6101, //缺少SSO票据  
43 - ERR_BIND_FAIL_REPEATD_BIND = 6102, //重复BIND  
44 - ERR_BIND_FAIL_TINYID_NULL = 6103, //tiny为空  
45 - ERR_BIND_FAIL_GUID_NULL = 6104, //guid为空  
46 - ERR_BIND_FAIL_UNPACK_REGPACK_FAILED = 6105, //解注册包失败  
47 - ERR_BIND_FAIL_REG_TIMEOUT = 6106, //注册超时  
48 - ERR_BIND_FAIL_ISBINDING = 6107, //正在bind操作中  
49 -  
50 - ERR_PACKET_FAIL_UNKNOWN = 6120, //发包未知错误  
51 - ERR_PACKET_FAIL_REQ_NO_NET = 6121, //发送请求包时没有网络,处理时转换成ERR_REQ_NO_NET_ON_REQ  
52 - ERR_PACKET_FAIL_RESP_NO_NET = 6122, //发送回复包时没有网络,处理时转换成ERR_REQ_NO_NET_ON_RSP  
53 - ERR_PACKET_FAIL_REQ_NO_AUTH = 6123, //发送请求包时没有权限  
54 - ERR_PACKET_FAIL_SSO_ERR = 6124, //SSO错误  
55 - ERR_PACKET_FAIL_REQ_TIMEOUT = 6125, //请求超时,处理时转化成ERR_REQUEST_TIMEOUT  
56 - ERR_PACKET_FAIL_RESP_TIMEOUT = 6126, //回复超时,处理时转化成ERR_REQUEST_TIMEOUT  
57 - ERR_PACKET_FAIL_REQ_ON_RESEND = 6127, //  
58 - ERR_PACKET_FAIL_RESP_NO_RESEND = 6128, //  
59 - ERR_PACKET_FAIL_FLOW_SAVE_FILTERED = 6129, //  
60 - ERR_PACKET_FAIL_REQ_OVER_LOAD = 6130, //  
61 - ERR_PACKET_FAIL_LOGIC_ERR = 6131,  
62 -  
63 - ERR_FRIENDSHIP_PROXY_NOT_SYNCED = 6150, // proxy_manager没有完成svr数据同步  
64 - ERR_FRIENDSHIP_PROXY_SYNCING = 6151, // proxy_manager正在进行svr数据同步  
65 - ERR_FRIENDSHIP_PROXY_SYNCED_FAIL = 6152, // proxy_manager同步失败  
66 - ERR_FRIENDSHIP_PROXY_LOCAL_CHECK_ERR = 6153, // proxy_manager请求参数,在本地检查不合法  
67 -  
68 - ERR_GROUP_INVALID_FIELD = 6160, // group assistant请求字段中包含非预设字段  
69 - ERR_GROUP_STORAGE_DISABLED = 6161, // group assistant群资料本地存储没有开启  
70 - ERR_LOADGRPINFO_FAILED = 6162, // failed to load groupinfo from storage  
71 -  
72 - ERR_REQ_NO_NET_ON_REQ = 6200, // 请求的时候没有网络  
73 - ERR_REQ_NO_NET_ON_RSP = 6201, // 响应的时候没有网络  
74 - ERR_SERIVCE_NOT_READY = 6205, // QALSDK服务未就绪  
75 - ERR_USER_SIG_EXPIRED = 6206, // 票据过期  
76 - ERR_LOGIN_AUTH_FAILED = 6207, // 账号认证失败(tinyid转换失败)  
77 - ERR_LOGIN_KICKED_OFF_BY_OTHER = 6208, // 账号被踢  
78 - ERR_NEVER_CONNECT_AFTER_LAUNCH = 6209, // 在应用启动后没有尝试联网  
79 -  
80 - ERR_REQ_FAILED = 6210, // QAL执行失败  
81 - ERR_REQ_INVALID_REQ = 6211, // 请求非法,toMsgService非法  
82 - ERR_REQ_OVERLOADED = 6212, // 请求队列満  
83 - ERR_REQ_KICK_OFF = 6213, // 已经被其他终端踢了  
84 - ERR_REQ_SERVICE_SUSPEND = 6214, // 服务被暂停  
85 - ERR_REQ_INVALID_SIGN = 6215, // SSO签名错误  
86 - ERR_REQ_INVALID_COOKIE = 6216, // SSO cookie无效  
87 - ERR_LOGIN_TLS_RSP_PARSE_FAILED = 6217, // 登录时TLS回包校验,包体长度错误  
88 - ERR_LOGIN_OPENMSG_TIMEOUT = 6218, // 登录时OPENSTATSVC向OPENMSG上报状态超时  
89 - ERR_LOGIN_OPENMSG_RSP_PARSE_FAILED = 6219, // 登录时OPENSTATSVC向OPENMSG上报状态时解析回包失败  
90 - ERR_LOGIN_TLS_DECRYPT_FAILED = 6220, // 登录时TLS解密失败  
91 - ERR_WIFI_NEED_AUTH = 6221, // wifi需要认证  
92 -  
93 - ERR_USER_CANCELED = 6222, // 用户已取消  
94 -  
95 - ERR_REVOKE_TIME_LIMIT_EXCEED = 6223, //消息撤回超过了时间限制(默认2分钟)  
96 - ERR_LACK_UGC_EXT = 6224, // 缺少UGC扩展包  
97 - ERR_AUTOLOGIN_NEED_USERSIG = 6226, //自动登录,本地票据过期,需要userSig手动登录  
98 -  
99 -  
100 - ERR_REQ_CONTENT_ATTACK = 80001, // 消息内容安全打击  
101 -  
102 - ERR_LOGIN_SIG_EXPIRE = 70001, // 登陆返回,票据过期  
103 -  
104 - ERR_SDK_HAD_INITIALIZED = 90001, // SDK 已经初始化无需重复初始化  
105 - ERR_OPENBDH_BASE = 115000, // openbdh 错误码基  
106 -};  
107 -  
108 -#endif /* TIMErrorCode_h */  
1 -//  
2 -// TIMFriendshipDefine.h  
3 -// imsdk  
4 -//  
5 -// Created by annidyfeng on 2019/3/7.  
6 -// Copyright © 2019年 Tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef TIMFriendshipDefine_h  
10 -#define TIMFriendshipDefine_h  
11 -  
12 -#import "ImSDK.h"  
13 -  
14 -@class TIMFriendMetaInfo;  
15 -@class TIMFriendPendencyResponse;  
16 -@class TIMFriendPendencyItem;  
17 -@class TIMFriendFutureMeta;  
18 -@class TIMFriendGroup;  
19 -  
20 -#pragma mark - 枚举类型  
21 -  
22 -/**  
23 - * 好友操作状态  
24 - */  
25 -typedef NS_ENUM(NSInteger, TIMFriendStatus) {  
26 - /**  
27 - * 操作成功  
28 - */  
29 - TIM_FRIEND_STATUS_SUCC = 0,  
30 -  
31 - /**  
32 - * 加好友、响应好友时有效:自己的好友数已达系统上限  
33 - */  
34 - TIM_ADD_FRIEND_STATUS_SELF_FRIEND_FULL = 30010,  
35 -  
36 - /**  
37 - * 更新好友分组时有效:分组已达系统上限  
38 - */  
39 - TIM_UPDATE_FRIEND_GROUP_STATUS_MAX_GROUPS_EXCEED = 30011,  
40 -  
41 - /**  
42 - * 加好友、响应好友时有效:对方的好友数已达系统上限  
43 - */  
44 - TIM_ADD_FRIEND_STATUS_THEIR_FRIEND_FULL = 30014,  
45 -  
46 - /**  
47 - * 加好友时有效:被加好友在自己的黑名单中  
48 - */  
49 - TIM_ADD_FRIEND_STATUS_IN_SELF_BLACK_LIST = 30515,  
50 -  
51 - /**  
52 - * 加好友时有效:被加好友设置为禁止加好友  
53 - */  
54 - TIM_ADD_FRIEND_STATUS_FRIEND_SIDE_FORBID_ADD = 30516,  
55 -  
56 - /**  
57 - * 加好友时有效:已被被添加好友设置为黑名单  
58 - */  
59 - TIM_ADD_FRIEND_STATUS_IN_OTHER_SIDE_BLACK_LIST = 30525,  
60 -  
61 - /**  
62 - * 加好友时有效:对方好友列表已满  
63 - */  
64 - TIM_ADD_FRIEND_STATUS_OTHER_SIDE_FRIEND_LIST_FULL = 30535,  
65 -  
66 - /**  
67 - * 加好友时有效:等待好友审核同意  
68 - */  
69 - TIM_ADD_FRIEND_STATUS_PENDING = 30539,  
70 -  
71 - /**  
72 - * 删除好友时有效:删除好友时对方不是好友  
73 - */  
74 - TIM_DEL_FRIEND_STATUS_NO_FRIEND = 31704,  
75 -  
76 - /**  
77 - * 响应好友申请时有效:对方没有申请过好友  
78 - */  
79 - TIM_RESPONSE_FRIEND_STATUS_NO_REQ = 30614,  
80 -  
81 - /**  
82 - * 添加黑名单有效:已经在黑名单了  
83 - */  
84 - TIM_ADD_BLACKLIST_FRIEND_STATUS_IN_BLACK_LIST = 31307,  
85 -  
86 - /**  
87 - * 删除黑名单有效:用户不在黑名单里  
88 - */  
89 - TIM_DEL_BLACKLIST_FRIEND_STATUS_NOT_IN_BLACK_LIST = 31503,  
90 -  
91 - /**  
92 - * 创建好友分组时有效:没有拉到SDKAppId  
93 - */  
94 - TIM_ADD_FRIEND_GROUP_STATUS_GET_SDKAPPID_FAILED = 32207,  
95 -  
96 - /**  
97 - * 创建好友分组时有效:要加入到好友分组中的用户不是好友  
98 - */  
99 - TIM_ADD_FRIEND_GROUP_STATUS_NOT_FRIEND = 32216,  
100 -  
101 - /**  
102 - * 更新好友分组时有效:没有拉到SDKAppId  
103 - */  
104 - TIM_UPDATE_FRIEND_GROUP_STATUS_GET_SDKAPPID_FAILED = 32511,  
105 -  
106 - /**  
107 - * 更新好友分组时有效:要加入到好友分组中的用户不是好友  
108 - */  
109 - TIM_UPDATE_FRIEND_GROUP_STATUS_ADD_NOT_FRIEND = 32518,  
110 -  
111 - /**  
112 - * 更新好友分组时有效:要加入到好友分组中的好友已经在分组中  
113 - */  
114 - TIM_UPDATE_FRIEND_GROUP_STATUS_ADD_ALREADY_IN_GROUP = 32519,  
115 -  
116 - /**  
117 - * 更新好友分组时有效:要从好友分组中删除的好友不在好友分组中  
118 - */  
119 - TIM_UPDATE_FRIEND_GROUP_STATUS_DEL_NOT_IN_GROUP = 32520,  
120 -  
121 -  
122 -};  
123 -  
124 -typedef NS_ENUM(NSInteger, TIMDelFriendType) {  
125 - /**  
126 - * 删除单向好友  
127 - */  
128 - TIM_FRIEND_DEL_SINGLE = 1,  
129 -  
130 - /**  
131 - * 删除双向好友  
132 - */  
133 - TIM_FRIEND_DEL_BOTH = 2,  
134 -};  
135 -  
136 -typedef NS_ENUM(NSInteger, TIMPendencyType) {  
137 - /**  
138 - * 别人发给我的  
139 - */  
140 - TIM_PENDENCY_COME_IN = 1,  
141 -  
142 - /**  
143 - * 我发给别人的  
144 - */  
145 - TIM_PENDENCY_SEND_OUT = 2,  
146 -  
147 - /**  
148 - * 别人发给我的 和 我发给别人的。仅拉取时有效  
149 - */  
150 - TIM_PENDENCY_BOTH = 3,  
151 -};  
152 -  
153 -/**  
154 - * 推荐好友类型  
155 - */  
156 -typedef NS_ENUM(NSInteger, TIMFutureFriendType) {  
157 - /**  
158 - * 收到的未决请求  
159 - */  
160 - TIM_FUTURE_FRIEND_PENDENCY_IN_TYPE = 0x1,  
161 -  
162 - /**  
163 - * 发出去的未决请求  
164 - */  
165 - TIM_FUTURE_FRIEND_PENDENCY_OUT_TYPE = 0x2,  
166 -  
167 - /**  
168 - * 推荐好友  
169 - */  
170 - TIM_FUTURE_FRIEND_RECOMMEND_TYPE = 0x4,  
171 -  
172 - /**  
173 - * 已决好友  
174 - */  
175 - TIM_FUTURE_FRIEND_DECIDE_TYPE = 0x8,  
176 -};  
177 -  
178 -/**  
179 - * 翻页选项  
180 - */  
181 -typedef NS_ENUM(NSInteger, TIMPageDirectionType) {  
182 - /**  
183 - * 向上翻页  
184 - */  
185 - TIM_PAGE_DIRECTION_UP_TYPE = 1,  
186 -  
187 - /**  
188 - * 向下翻页  
189 - */  
190 - TIM_PAGE_DIRECTION_DOWN_TYPE = 2,  
191 -};  
192 -  
193 -/**  
194 - * 好友检查类型  
195 - */  
196 -typedef NS_ENUM(NSInteger,TIMFriendCheckType) {  
197 - /**  
198 - * 单向好友  
199 - */  
200 - TIM_FRIEND_CHECK_TYPE_UNIDIRECTION = 0x1,  
201 - /**  
202 - * 互为好友  
203 - */  
204 - TIM_FRIEND_CHECK_TYPE_BIDIRECTION = 0x2,  
205 -};  
206 -  
207 -/**  
208 - * 好友关系类型  
209 - */  
210 -typedef NS_ENUM(NSInteger,TIMFriendRelationType) {  
211 - /**  
212 - * 不是好友  
213 - */  
214 - TIM_FRIEND_RELATION_TYPE_NONE = 0x0,  
215 - /**  
216 - * 对方在我的好友列表中  
217 - */  
218 - TIM_FRIEND_RELATION_TYPE_MY_UNI = 0x1,  
219 - /**  
220 - * 我在对方的好友列表中  
221 - */  
222 - TIM_FRIEND_RELATION_TYPE_OTHER_UNI = 0x2,  
223 - /**  
224 - * 互为好友  
225 - */  
226 - TIM_FRIEND_RELATION_TYPE_BOTH = 0x3,  
227 -};  
228 -  
229 -typedef NS_ENUM(NSInteger, TIMFriendResponseType) {  
230 - /**  
231 - * 同意加好友(建立单向好友)  
232 - */  
233 - TIM_FRIEND_RESPONSE_AGREE = 0,  
234 -  
235 - /**  
236 - * 同意加好友并加对方为好友(建立双向好友)  
237 - */  
238 - TIM_FRIEND_RESPONSE_AGREE_AND_ADD = 1,  
239 -  
240 - /**  
241 - * 拒绝对方好友请求  
242 - */  
243 - TIM_FRIEND_RESPONSE_REJECT = 2,  
244 -};  
245 -  
246 -#pragma mark - block回调  
247 -  
248 -/**  
249 - * 获取好友列表回调  
250 - *  
251 - * @param meta 好友元信息  
252 - * @param friends 好友列表 TIMUserProfile* 数组,只包含需要的字段  
253 - */  
254 -typedef void (^TIMGetFriendListByPageSucc)(TIMFriendMetaInfo * meta, NSArray * friends);  
255 -  
256 -/**  
257 - * 获取未决请求列表成功  
258 - *  
259 - * @param pendencyResponse 未决请求元信息  
260 - */  
261 -typedef void (^TIMGetFriendPendencyListSucc)(TIMFriendPendencyResponse *pendencyResponse);  
262 -  
263 -/**  
264 - * 群搜索回调  
265 - *  
266 - * @param totalNum 搜索结果的总数  
267 - * @param users 请求的用户列表片段  
268 - */  
269 -typedef void (^TIMUserSearchSucc)(uint64_t totalNum, NSArray * users);  
270 -  
271 -/**  
272 - * 好友分组列表  
273 - *  
274 - * @param groups 好友分组(TIMFriendGroup*)列表  
275 - */  
276 -typedef void (^TIMFriendGroupArraySucc)(NSArray<TIMFriendGroup *> * groups);  
277 -  
278 -/**  
279 - * 好友关系检查回调  
280 - *  
281 - * @param results TIMCheckFriendResult列表  
282 - */  
283 -typedef void (^TIMFriendCheckSucc)(NSArray* results);  
284 -  
285 -#pragma mark - 基本类型  
286 -  
287 -/**  
288 - * 加好友请求  
289 - */  
290 -@interface TIMFriendRequest : TIMCodingModel  
291 -  
292 -/**  
293 - * 用户identifier(必填)  
294 - */  
295 -@property (nonatomic,strong) NSString* identifier;  
296 -  
297 -/**  
298 - * 备注(备注最大96字节)  
299 - */  
300 -@property (nonatomic,strong) NSString* remark;  
301 -  
302 -/**  
303 - * 请求说明(最大120字节)  
304 - */  
305 -@property (nonatomic,strong) NSString* addWording;  
306 -  
307 -/**  
308 - * 添加来源  
309 - * 来源需要添加“AddSource_Type_”前缀  
310 - */  
311 -@property (nonatomic,strong) NSString* addSource;  
312 -  
313 -/**  
314 - * 分组  
315 - */  
316 -@property (nonatomic,strong) NSString* group;  
317 -  
318 -@end  
319 -  
320 -/**  
321 - * 未决请求  
322 - */  
323 -@interface TIMFriendPendencyItem : TIMCodingModel  
324 -  
325 -/**  
326 - * 用户标识  
327 - */  
328 -@property(nonatomic,strong) NSString* identifier;  
329 -/**  
330 - * 增加时间  
331 - */  
332 -@property(nonatomic,assign) uint64_t addTime;  
333 -/**  
334 - * 来源  
335 - */  
336 -@property(nonatomic,strong) NSString* addSource;  
337 -/**  
338 - * 加好友附言  
339 - */  
340 -@property(nonatomic,strong) NSString* addWording;  
341 -  
342 -/**  
343 - * 加好友昵称  
344 - */  
345 -@property(nonatomic,strong) NSString* nickname;  
346 -  
347 -/**  
348 - * 未决请求类型  
349 - */  
350 -@property(nonatomic,assign) TIMPendencyType type;  
351 -  
352 -@end  
353 -  
354 -/**  
355 - * 未决推送  
356 - */  
357 -@interface TIMFriendPendencyInfo : TIMCodingModel  
358 -/**  
359 - * 用户标识  
360 - */  
361 -@property(nonatomic,strong) NSString* identifier;  
362 -/**  
363 - * 来源  
364 - */  
365 -@property(nonatomic,strong) NSString* addSource;  
366 -/**  
367 - * 加好友附言  
368 - */  
369 -@property(nonatomic,strong) NSString* addWording;  
370 -  
371 -/**  
372 - * 加好友昵称  
373 - */  
374 -@property(nonatomic,strong) NSString* nickname;  
375 -@end  
376 -  
377 -/**  
378 - * 未决请求信息  
379 - */  
380 -@interface TIMFriendPendencyRequest : TIMCodingModel  
381 -  
382 -/**  
383 - * 序列号,未决列表序列号  
384 - * 建议客户端保存seq和未决列表,请求时填入server返回的seq  
385 - * 如果seq是server最新的,则不返回数据  
386 - */  
387 -@property(nonatomic,assign) uint64_t seq;  
388 -  
389 -/**  
390 - * 翻页时间戳,只用来翻页,server返回0时表示没有更多数据,第一次请求填0  
391 - * 特别注意的是,如果server返回的seq跟填入的seq不同,翻页过程中,需要使用客户端原始seq请求,直到数据请求完毕,才能更新本地seq  
392 - */  
393 -@property(nonatomic,assign) uint64_t timestamp;  
394 -  
395 -/**  
396 - * 每页的数量,即本次请求最多返回都个数据  
397 - */  
398 -@property(nonatomic,assign) uint64_t numPerPage;  
399 -  
400 -/**  
401 - * 未决请求拉取类型  
402 - */  
403 -@property(nonatomic,assign) TIMPendencyType type;  
404 -  
405 -@end  
406 -  
407 -/**  
408 - * 未决返回信息  
409 - */  
410 -@interface TIMFriendPendencyResponse : TIMCodingModel  
411 -  
412 -/**  
413 - * 本次请求的未决列表序列号  
414 - */  
415 -@property(nonatomic,assign) uint64_t seq;  
416 -  
417 -/**  
418 - * 本次请求的翻页时间戳  
419 - */  
420 -@property(nonatomic,assign) uint64_t timestamp;  
421 -  
422 -/**  
423 - * 未决请求未读数量  
424 - */  
425 -@property(nonatomic,assign) uint64_t unreadCnt;  
426 -  
427 -/**  
428 - * 未决数据  
429 - */  
430 -@property NSArray<TIMFriendPendencyItem *> * pendencies;  
431 -  
432 -@end  
433 -  
434 -  
435 -  
436 -/**  
437 - * 好友元信息  
438 - */  
439 -@interface TIMFriendMetaInfo : TIMCodingModel  
440 -  
441 -/**  
442 - * 时间戳,需要保存,下次拉取时传入,增量更新使用  
443 - */  
444 -@property(nonatomic,assign) uint64_t timestamp;  
445 -/**  
446 - * 序列号,需要保存,下次拉取时传入,增量更新使用  
447 - */  
448 -@property(nonatomic,assign) uint64_t infoSeq;  
449 -/**  
450 - * 分页信息,无需保存,返回为0时结束,非0时传入再次拉取,第一次拉取时传0  
451 - */  
452 -@property(nonatomic,assign) uint64_t nextSeq;  
453 -/**  
454 - * 覆盖:为TRUE时需要重设timestamp, infoSeq, nextSeq为0,清除客户端存储,重新拉取资料  
455 - */  
456 -@property(nonatomic,assign) BOOL recover;  
457 -  
458 -@end  
459 -  
460 -/**  
461 - * 好友分组信息  
462 - */  
463 -@interface TIMFriendGroup : TIMCodingModel  
464 -/**  
465 - * 好友分组名称  
466 - */  
467 -@property(nonatomic,strong) NSString* name;  
468 -  
469 -/**  
470 - * 分组成员数量  
471 - */  
472 -@property(nonatomic,assign) uint64_t userCnt;  
473 -  
474 -/**  
475 - * 分组成员identifier列表  
476 - */  
477 -@property(nonatomic,strong) NSArray* friends;  
478 -  
479 -@end  
480 -  
481 -/**  
482 - * 好友关系检查  
483 - */  
484 -@interface TIMFriendCheckInfo : NSObject  
485 -/**  
486 - * 检查用户的id列表(NSString*)  
487 - */  
488 -@property(nonatomic,strong) NSArray* users;  
489 -  
490 -/**  
491 - * 检查类型  
492 - */  
493 -@property(nonatomic,assign) TIMFriendCheckType checkType;  
494 -  
495 -@end  
496 -  
497 -@interface TIMCheckFriendResult : NSObject  
498 -/**  
499 - * 用户id  
500 - */  
501 -@property(nonatomic,strong) NSString* identifier;  
502 -/**  
503 - * 返回状态  
504 - */  
505 -@property(nonatomic,assign) TIMFriendStatus status;  
506 -/**  
507 - * 检查结果  
508 - */  
509 -@property(nonatomic,assign) TIMFriendRelationType resultType;  
510 -  
511 -@end  
512 -  
513 -@interface TIMFriendResult : NSObject  
514 -  
515 -/**  
516 - * 用户Id  
517 - */  
518 -@property NSString* identifier;  
519 -  
520 -/**  
521 - * 返回码  
522 - */  
523 -@property NSInteger result_code;  
524 -  
525 -/**  
526 - * 返回信息  
527 - */  
528 -@property NSString *result_info;  
529 -  
530 -@end  
531 -  
532 -/**  
533 - * 响应好友请求  
534 - */  
535 -@interface TIMFriendResponse : NSObject  
536 -  
537 -/**  
538 - * 响应类型  
539 - */  
540 -@property(nonatomic,assign) TIMFriendResponseType responseType;  
541 -  
542 -/**  
543 - * 用户identifier  
544 - */  
545 -@property(nonatomic,strong) NSString* identifier;  
546 -  
547 -/**  
548 - * 备注好友(可选,如果要加对方为好友)。备注最大96字节  
549 - */  
550 -@property(nonatomic,strong) NSString* remark;  
551 -  
552 -@end  
553 -  
554 -  
555 -/**  
556 - * 好友分组信息扩展  
557 - */  
558 -@interface TIMFriendGroupWithProfiles : TIMFriendGroup  
559 -/**  
560 - * 好友资料(TIMUserProfile*)列表  
561 - */  
562 -@property(nonatomic,strong) NSArray* profiles;  
563 -@end  
564 -  
565 -// 用户资料KEY  
566 -  
567 -/**  
568 - * 昵称  
569 - * 值类型: NSString  
570 - */  
571 -extern NSString *const TIMProfileTypeKey_Nick;  
572 -/**  
573 - * 头像  
574 - * 值类型: NSString  
575 - */  
576 -extern NSString *const TIMProfileTypeKey_FaceUrl;  
577 -/**  
578 - * 好友申请  
579 - * 值类型: NSNumber [TIM_FRIEND_ALLOW_ANY,TIM_FRIEND_NEED_CONFIRM,TIM_FRIEND_DENY_ANY]  
580 - */  
581 -extern NSString *const TIMProfileTypeKey_AllowType;  
582 -/**  
583 - * 性别  
584 - * 值类型: NSNumber [TIM_GENDER_UNKNOWN,TIM_GENDER_MALE,TIM_GENDER_FEMALE]  
585 - */  
586 -extern NSString *const TIMProfileTypeKey_Gender;  
587 -/**  
588 - * 生日  
589 - * 值类型: NSNumber  
590 - */  
591 -extern NSString *const TIMProfileTypeKey_Birthday;  
592 -/**  
593 - * 位置  
594 - * 值类型: NSString  
595 - */  
596 -extern NSString *const TIMProfileTypeKey_Location;  
597 -/**  
598 - * 语言  
599 - * 值类型: NSNumber  
600 - */  
601 -extern NSString *const TIMProfileTypeKey_Language;  
602 -/**  
603 - * 等级  
604 - * 值类型: NSNumber  
605 - */  
606 -extern NSString *const TIMProfileTypeKey_Level;  
607 -/**  
608 - * 角色  
609 - * 值类型: NSNumber  
610 - */  
611 -extern NSString *const TIMProfileTypeKey_Role;  
612 -/**  
613 - * 签名  
614 - * 值类型: NSString  
615 - */  
616 -extern NSString *const TIMProfileTypeKey_SelfSignature;  
617 -/**  
618 - * 自定义字段前缀  
619 - * 值类型: [NSString,NSData|NSNumber]  
620 - * @note 当设置自定义字的值NSString对象时,后台会将其转为UTF8保存在数据库中。由于部分用户迁移资料时可能不是UTF8类型,所以在获取资料时,统一返回NSData类型。  
621 - */  
622 -extern NSString *const TIMProfileTypeKey_Custom_Prefix;  
623 -  
624 -// 好友资料KEY  
625 -  
626 -/**  
627 - * 备注  
628 - * 值类型: NSString  
629 - */  
630 -extern NSString *const TIMFriendTypeKey_Remark;  
631 -/**  
632 - * 分组  
633 - * 值类型: [NSArray]  
634 - */  
635 -extern NSString *const TIMFriendTypeKey_Group;  
636 -/**  
637 - * 自定义字段前缀  
638 - * 值类型: [NSString,NSData|NSNumber]  
639 - */  
640 -extern NSString *const TIMFriendTypeKey_Custom_Prefix;  
641 -#endif /* TIMFriendshipDefine_h */  
642 -  
1 -//  
2 -// TIMFriendshipManager.h  
3 -// imsdk  
4 -//  
5 -// Created by annidyfeng on 2019/3/7.  
6 -// Copyright © 2019年 Tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef TIMFriendshipManager_h  
10 -#define TIMFriendshipManager_h  
11 -  
12 -#import "TIMComm.h"  
13 -#import "TIMFriendshipDefine.h"  
14 -  
15 -@interface TIMFriendshipManager : NSObject  
16 -/**  
17 - * 获取好友管理器实例  
18 - *  
19 - * @return 管理器实例  
20 - */  
21 -+ (TIMFriendshipManager*)sharedInstance;  
22 -  
23 -/**  
24 - * 设置自己的资料  
25 - *  
26 - * @param values 需要更新的属性,可一次更新多个字段. 参见 TIMFriendshipDefine.h 的 TIMProfileTypeKey_XXX  
27 - * @param succ 成功回调  
28 - * @param fail 失败回调  
29 - *  
30 - * @return 0 发送请求成功  
31 - */  
32 -- (int)modifySelfProfile:(NSDictionary<NSString *, id> *)values succ:(TIMSucc)succ fail:(TIMFail)fail;  
33 -  
34 -/**  
35 - * 获取自己的资料  
36 - *  
37 - * @param succ 成功回调,返回 TIMUserProfile  
38 - * @param fail 失败回调  
39 - *  
40 - * @return 0 发送请求成功  
41 - */  
42 -- (int)getSelfProfile:(TIMGetProfileSucc)succ fail:(TIMFail)fail;  
43 -  
44 -/**  
45 - * 获取指定用户资料  
46 - *  
47 - * @param identifiers 用户id,非好友的用户也可以  
48 - * @prarm forceUpdate 强制从后台拉取  
49 - * @param succ 成功回调  
50 - * @param fail 失败回调  
51 - *  
52 - * @return 0 发送请求成功  
53 - */  
54 -- (int)getUsersProfile:(NSArray<NSString *> *)identifiers forceUpdate:(BOOL)forceUpdate succ:(TIMUserProfileArraySucc)succ fail:(TIMFail)fail;  
55 -  
56 -/**  
57 - * 获取好友列表  
58 - *  
59 - * @param succ 成功回调,返回好友(TIMFriend)列表  
60 - * @param fail 失败回调  
61 - *  
62 - * @return 0 发送请求成功  
63 - */  
64 --(int)getFriendList:(TIMFriendArraySucc)succ fail:(TIMFail)fail;  
65 -  
66 -  
67 -/**  
68 - * 添加好友  
69 - *  
70 - * @param request 添加好友请求  
71 - * @param succ 成功回调(TIMFriendResult)  
72 - * @param fail 失败回调  
73 - *  
74 - * @return 0 发送请求成功  
75 - */  
76 -- (int)addFriend:(TIMFriendRequest *)request succ:(TIMFriendResultSucc)succ fail:(TIMFail)fail;  
77 -  
78 -/**  
79 - * 响应对方好友邀请  
80 - *  
81 - * @param response 响应请求  
82 - * @param succ 成功回调  
83 - * @param fail 失败回调  
84 - *  
85 - * @return 0 发送请求成功  
86 - */  
87 -- (int)doResponse:(TIMFriendResponse *)response succ:(TIMFriendResultSucc)succ fail:(TIMFail)fail;  
88 -  
89 -/**  
90 - * 删除好友  
91 - *  
92 - * @param identifiers 好友id  
93 - * @param delType 删除类型(单向好友、双向好友)  
94 - * @param succ 成功回调([TIMFriendResult])  
95 - * @param fail 失败回调  
96 - *  
97 - * @return 0 发送请求成功  
98 - */  
99 -- (int)deleteFriends:(NSArray *)identifiers delType:(TIMDelFriendType)delType succ:(TIMFriendResultArraySucc)succ fail:(TIMFail)fail;  
100 -  
101 -/**  
102 - * 修改好友  
103 - *  
104 - * @param identifier 好友id  
105 - * @param values 需要更新的属性,可一次更新多个字段. 参见 TIMFriendshipDefine.h 的 TIMFriendTypeKey_XXX  
106 - * @param succ 成功回调  
107 - * @param fail 失败回调  
108 - *  
109 - * @return 0 发送请求成功  
110 - */  
111 -- (int)modifyFriend:(NSString *)identifier values:(NSDictionary<NSString *, id> *)values succ:(TIMSucc)succ fail:(TIMFail)fail;  
112 -  
113 -/**  
114 - * 未决列表请求  
115 - *  
116 - * @param pendencyRequest 请求信息,详细参考TIMFriendPendencyRequest  
117 - * @param succ 成功回调  
118 - * @param fail 失败回调  
119 - *  
120 - * @return 0 发送请求成功  
121 - */  
122 -- (int)getPendencyList:(TIMFriendPendencyRequest *)pendencyRequest succ:(TIMGetFriendPendencyListSucc)succ fail:(TIMFail)fail;  
123 -  
124 -/**  
125 - * 未决删除  
126 - *  
127 - * @param type 未决好友类型  
128 - * @param identifiers 要删除的未决列表  
129 - * @param succ 成功回调  
130 - * @param fail 失败回调  
131 - *  
132 - * @return 0 发送请求成功  
133 - */  
134 -- (int)deletePendency:(TIMPendencyType)type users:(NSArray *)identifiers succ:(TIMSucc)succ fail:(TIMFail)fail;  
135 -  
136 -/**  
137 - * 未决已读上报  
138 - *  
139 - * @param timestamp 已读时间戳,此时间戳以前的消息都将置为已读  
140 - * @param succ 成功回调  
141 - * @param fail 失败回调  
142 - *  
143 - * @return 0 发送请求成功  
144 - */  
145 -- (int)pendencyReport:(uint64_t)timestamp succ:(TIMSucc)succ fail:(TIMFail)fail;  
146 -  
147 -/**  
148 - * 获取黑名单列表  
149 - *  
150 - * @param succ 成功回调,返回NSString*列表  
151 - * @param fail 失败回调  
152 - *  
153 - * @return 0 发送请求成功  
154 - */  
155 -- (int)getBlackList:(TIMFriendArraySucc)succ fail:(TIMFail)fail;  
156 -  
157 -/**  
158 - * 添加用户到黑名单  
159 - *  
160 - * @param identifiers 用户列表  
161 - * @param succ 成功回调  
162 - * @param fail 失败回调  
163 - *  
164 - * @return 0 发送请求成功  
165 - */  
166 -- (int)addBlackList:(NSArray *)identifiers succ:(TIMFriendResultArraySucc)succ fail:(TIMFail)fail;  
167 -  
168 -/**  
169 - * 把用户从黑名单中删除  
170 - *  
171 - * @param identifiers 用户列表  
172 - * @param succ 成功回调  
173 - * @param fail 失败回调  
174 - *  
175 - * @return 0 发送请求成功  
176 - */  
177 -- (int)deleteBlackList:(NSArray *)identifiers succ:(TIMFriendResultArraySucc)succ fail:(TIMFail)fail;  
178 -  
179 -/**  
180 - * 新建好友分组  
181 - *  
182 - * @param groupNames 分组名称列表,必须是当前不存在的分组  
183 - * @param identifiers 要添加到分组中的好友  
184 - * @param succ 成功回调  
185 - * @param fail 失败回调  
186 - *  
187 - * @return 0 发送请求成功  
188 - */  
189 -- (int)createFriendGroup:(NSArray *)groupNames users:(NSArray *)identifiers succ:(TIMFriendResultArraySucc)succ fail:(TIMFail)fail;  
190 -  
191 -/**  
192 - * 获取指定的好友分组信息  
193 - *  
194 - * @param groupNames 要获取信息的好友分组名称列表,传入nil获得所有分组信息  
195 - * @param succ 成功回调,返回 TIMFriendGroup* 列表  
196 - * @param fail 失败回调  
197 - *  
198 - * @return 0 发送请求成功  
199 - */  
200 -- (int)getFriendGroups:(NSArray *)groupNames succ:(TIMFriendGroupArraySucc)succ fail:(TIMFail)fail;  
201 -  
202 -/**  
203 - * 删除好友分组  
204 - *  
205 - * @param groupNames 要删除的好友分组名称列表  
206 - * @param succ 成功回调  
207 - * @param fail 失败回调  
208 - *  
209 - * @return 0 发送请求成功  
210 - */  
211 -- (int)deleteFriendGroup:(NSArray *)groupNames succ:(TIMSucc)succ fail:(TIMFail)fail;  
212 -  
213 -/**  
214 - * 修改好友分组的名称  
215 - *  
216 - * @param oldName 原来的分组名称  
217 - * @param newName 新的分组名称  
218 - * @param succ 成功回调  
219 - * @param fail 失败回调  
220 - *  
221 - * @return 0 发送请求成功  
222 - */  
223 -- (int)renameFriendGroup:(NSString*)oldName newName:(NSString*)newName succ:(TIMSucc)succ fail:(TIMFail)fail;  
224 -  
225 -/**  
226 - * 添加好友到一个好友分组  
227 - *  
228 - * @param groupName 好友分组名称  
229 - * @param identifiers 要添加到分组中的好友  
230 - * @param succ 成功回调  
231 - * @param fail 失败回调  
232 - *  
233 - * @return 0 发送请求成功  
234 - */  
235 -- (int)addFriendsToFriendGroup:(NSString *)groupName users:(NSArray *)identifiers succ:(TIMFriendResultArraySucc)succ fail:(TIMFail)fail;  
236 -  
237 -/**  
238 - * 从好友分组中删除好友  
239 - *  
240 - * @param groupName 好友分组名称  
241 - * @param identifiers 要移出分组的好友  
242 - * @param succ 成功回调  
243 - * @param fail 失败回调  
244 - *  
245 - * @return 0 发送请求成功  
246 - */  
247 -- (int)deleteFriendsFromFriendGroup:(NSString *)groupName users:(NSArray *)identifiers succ:(TIMFriendResultArraySucc)succ fail:(TIMFail)fail;  
248 -@end  
249 -  
250 -#endif /* TIMFriendshipManager_h */  
1 -//  
2 -// TIMGroupManager+Ext.h  
3 -// IMGroupExt  
4 -//  
5 -// Created by tomzhu on 2017/2/9.  
6 -//  
7 -//  
8 -  
9 -#ifndef TIMGroupManager_Ext_h  
10 -#define TIMGroupManager_Ext_h  
11 -  
12 -#import "TIMGroupManager.h"  
13 -#import "TIMComm+Group.h"  
14 -  
15 -@interface TIMGroupManager (Ext)  
16 -  
17 -/**  
18 - * 创建私有群  
19 - *  
20 - * 创建者默认加入群组,无需显式指定,群组类型形态请参考官网文档 [群组形态介绍](https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E7.BB.84.E5.BD.A2.E6.80.81.E4.BB.8B.E7.BB.8D)  
21 - *  
22 - * @param members 群成员,NSString* 数组  
23 - * @param groupName 群名  
24 - * @param succ 成功回调 groupId  
25 - * @param fail 失败回调  
26 - *  
27 - * @return 0:成功;1:失败  
28 - */  
29 -- (int)createPrivateGroup:(NSArray*)members groupName:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;  
30 -  
31 -/**  
32 - * 创建公开群  
33 - *  
34 - * 创建者默认加入群组,无需显式指定,群组类型形态请参考官网文档 [群组形态介绍](https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E7.BB.84.E5.BD.A2.E6.80.81.E4.BB.8B.E7.BB.8D)  
35 - *get  
36 - * @param members 群成员,NSString* 数组  
37 - * @param groupName 群名  
38 - * @param succ 成功回调 groupId  
39 - * @param fail 失败回调  
40 - *  
41 - * @return 0:成功;1:失败  
42 - */  
43 -- (int)createPublicGroup:(NSArray*)members groupName:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;  
44 -  
45 -/**  
46 - * 创建聊天室  
47 - *  
48 - * 创建者默认加入群组,无需显式指定,群组类型形态请参考官网文档 [群组形态介绍](https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E7.BB.84.E5.BD.A2.E6.80.81.E4.BB.8B.E7.BB.8D)  
49 - *  
50 - * @param members 群成员,NSString* 数组  
51 - * @param groupName 群名  
52 - * @param succ 成功回调 groupId  
53 - * @param fail 失败回调  
54 - *  
55 - * @return 0:成功;1:失败  
56 - */  
57 -- (int)createChatRoomGroup:(NSArray*)members groupName:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;  
58 -  
59 -/**  
60 - * 创建音视频聊天室(可支持超大群,详情可参考wiki文档)  
61 - *  
62 - * 创建者默认加入群组,无需显式指定,群组类型形态请参考官网文档 [群组形态介绍](https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E7.BB.84.E5.BD.A2.E6.80.81.E4.BB.8B.E7.BB.8D)  
63 - *  
64 - * @param groupName 群名  
65 - * @param succ 成功回调 groupId  
66 - * @param fail 失败回调  
67 - *  
68 - * @return 0:成功;1:失败  
69 - */  
70 -- (int)createAVChatRoomGroup:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;  
71 -  
72 -/**  
73 - * 创建自定义群组  
74 - *  
75 - * 在创建群组时,除了设置默认的成员以及群名外,还可以设置如群公告、群简介等字段。  
76 - *  
77 - * @param groupInfo 群组信息,详情请参考 TIMComm+Group.h 里面的 TIMCreateGroupInfo 定义  
78 - * @param succ 成功回调 groupId  
79 - * @param fail 失败回调  
80 - *  
81 - * @return 0:成功;1:失败  
82 - */  
83 -- (int)createGroup:(TIMCreateGroupInfo*)groupInfo succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;  
84 -  
85 -/**  
86 - * 邀请好友入群  
87 - *  
88 - * 1. 只有私有群可以拉用户入群。  
89 - * 2. 直播大群:不能邀请用户入群。  
90 - * 3. 不允许群成员邀请他人入群,但创建群时可以直接拉人入群。  
91 - *  
92 - * @param group 群组Id  
93 - * @param members 要加入的成员列表(NSString* 类型数组)  
94 - * @param succ 成功回调  
95 - * @param fail 失败回调  
96 - *  
97 - * @return 0:成功;1:失败  
98 - */  
99 -- (int)inviteGroupMember:(NSString*)group members:(NSArray*)members succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail;  
100 -  
101 -/**  
102 - * 删除群成员  
103 - *  
104 - * 1. 私有群:只有创建者可删除群组成员。  
105 - * 2. 公开群、聊天室:只有管理员和群主可以踢人。  
106 - * 3. 对于直播大群:不能踢人。  
107 - *  
108 - * @param group 群组Id  
109 - * @param reason 删除原因  
110 - * @param members 要删除的成员列表  
111 - * @param succ 成功回调  
112 - * @param fail 失败回调  
113 - *  
114 - * @return 0:成功;1:失败  
115 - */  
116 -- (int)deleteGroupMemberWithReason:(NSString*)group reason:(NSString*)reason members:(NSArray*)members succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail;  
117 -  
118 -/**  
119 - * 获取群公开信息(暂未实现)  
120 - *  
121 - * 任意用户可以获取群公开资料,只能获取公开信息。  
122 - *  
123 - * @param groups 群组Id  
124 - * @param succ 成功回调  
125 - * @param fail 失败回调  
126 - *  
127 - * @return 0:成功;1:失败  
128 - */  
129 -- (int)getGroupPublicInfo:(NSArray*)groups succ:(TIMGroupListSucc)succ fail:(TIMFail)fail;  
130 -  
131 -/**  
132 - * 获取群列表  
133 - *  
134 - * 1. 可以获取自己所加入的群列表。  
135 - * 2. 只能获得加入的部分直播大群的列表。  
136 - *  
137 - * @param succ 成功回调,NSArray 列表为 TIMGroupInfo,结构体只包含 group\groupName\groupType\faceUrl\allShutup\selfInfo 信息  
138 - * @param fail 失败回调  
139 - *  
140 - * @return 0:成功;1:失败  
141 - */  
142 -- (int)getGroupList:(TIMGroupListSucc)succ fail:(TIMFail)fail;  
143 -  
144 -/**  
145 - * 获取群信息  
146 - *  
147 - * 1. 获取群组资料接口只能由群成员调用,非群成员无法通过此方法获取资料,需要调用 getGroupPublicInfo 获取资料。  
148 - * 2. 默认拉取基本资料,如果想要拉取自定义字段,首先要通过 [IM 控制台](https://console.cloud.tencent.com/avc) -> 功能配置 -> 群维度自定义字段 配置相关的 key 和权限,然后在 initSDK 的时候把生成的 key 设置在 IMGroupInfoOption 里面的 groupCustom 字段。需要注意的是,只有对自定义字段 value 做了赋值或则修改,才能拉取到自定义字段。  
149 - *  
150 - * @param succ 成功回调,不包含 selfInfo信息  
151 - * @param fail 失败回调  
152 - *  
153 - * @return 0:成功;1:失败  
154 - */  
155 -- (int)getGroupInfo:(NSArray*)groups succ:(TIMGroupListSucc)succ fail:(TIMFail)fail;  
156 -  
157 -/**  
158 - * 获取本人在群组内的成员信息  
159 - *  
160 - * 默认拉取基本资料,如果想要拉取自定义字段,请参考 getGroupInfo  
161 - *  
162 - * @param group 群组Id  
163 - * @param succ 成功回调,返回信息  
164 - * @param fail 失败回调  
165 - *  
166 - * @return 0:成功;1:失败  
167 - */  
168 -- (int)getGroupSelfInfo:(NSString*)group succ:(TIMGroupSelfSucc)succ fail:(TIMFail)fail;  
169 -  
170 -/**  
171 - * 获取接受消息选项  
172 - *  
173 - * @param group 群组Id  
174 - * @param succ 成功回调, TIMGroupReceiveMessageOpt 0:接收消息;1:不接收消息,服务器不进行转发;2:接受消息,不进行 iOS APNs 推送  
175 - * @param fail 失败回调  
176 - *  
177 - * @return 0:成功;1:失败  
178 - */  
179 -- (int)getReciveMessageOpt:(NSString*)group succ:(TIMGroupReciveMessageOptSucc)succ fail:(TIMFail)fail;  
180 -  
181 -/**  
182 - * 获取群成员列表  
183 - *  
184 - * 1. 获取群内成员列表,默认拉取内置字段,但不拉取自定义字段,如果想要拉取自定义字段,首先要通过 [IM 控制台](https://console.cloud.tencent.com/avc) -> 功能配置 -> 群维度自定义字段 配置相关的 key 和权限,然后在 initSDK 的时候把生成的 key 设置在 IMGroupInfoOption 里面的 groupCustom 字段。需要注意的是,只有对自定义字段的 value 做了赋值或则修改,才能拉取到自定义字段。  
185 - * 2. 任何群组类型:都可以获取成员列表。  
186 - * 3. 直播大群:只能拉取部分成员(包括群主、管理员和部分成员)。  
187 - *  
188 - * @param group 群组Id  
189 - * @param succ 成功回调(TIMGroupMemberInfo列表)  
190 - * @param fail 失败回调  
191 - *  
192 - * @return 0:成功;1:失败  
193 - */  
194 -- (int)getGroupMembers:(NSString*)group succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail;  
195 -  
196 -/**  
197 - * 获取群组指定成员的信息  
198 - *  
199 - * 获取群组指定成员的信息,需要设置群成员 members,其他限制参考 getGroupMembers  
200 - *  
201 - * @param group 群组Id  
202 - * @param members 成员Id(NSString*)列表  
203 - * @param succ 成功回调(TIMGroupMemberInfo列表)  
204 - * @param fail 失败回调  
205 - *  
206 - * @return 0:成功;1:失败  
207 - */  
208 -- (int)getGroupMembersInfo:(NSString*)group members:(NSArray*)members succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail;  
209 -  
210 -/**  
211 - * 获取指定类型的成员列表(支持按字段拉取,分页)  
212 - *  
213 - * @param group 群组Id:(NSString*) 列表  
214 - * @param filter 群成员角色过滤方式  
215 - * @param flags 拉取资料标志  
216 - * @param custom 要获取的自定义key(NSString*)列表  
217 - * @param nextSeq 分页拉取标志,第一次拉取填0,回调成功如果 nextSeq 不为零,需要分页,传入再次拉取,直至为0  
218 - * @param succ 成功回调  
219 - * @param fail 失败回调  
220 - * @return 0:成功;1:失败  
221 - */  
222 -- (int)getGroupMembers:(NSString*)group ByFilter:(TIMGroupMemberFilter)filter flags:(TIMGetGroupMemInfoFlag)flags custom:(NSArray*)custom nextSeq:(uint64_t)nextSeq succ:(TIMGroupMemberSuccV2)succ fail:(TIMFail)fail;  
223 -  
224 -/**  
225 - * 修改群名  
226 - *  
227 - * 1. 公开群、聊天室和直播大群:只有群主或者管理员可以修改群名。  
228 - * 2. 私有群:任何人可修改群名。  
229 - *  
230 - * @param group 群组Id  
231 - * @param groupName 新群名  
232 - * @param succ 成功回调  
233 - * @param fail 失败回调  
234 - *  
235 - * @return 0:成功;1:失败  
236 - */  
237 -- (int)modifyGroupName:(NSString*)group groupName:(NSString*)groupName succ:(TIMSucc)succ fail:(TIMFail)fail;  
238 -  
239 -/**  
240 - * 修改群简介  
241 - *  
242 - * 1. 公开群、聊天室、直播大群:只有群主或者管理员可以修改群简介。  
243 - * 2. 私有群:任何人可修改群简介。  
244 - *  
245 - * @param group 群组Id  
246 - * @param introduction 群简介(最长120字节)  
247 - * @param succ 成功回调  
248 - * @param fail 失败回调  
249 - *  
250 - * @return 0:成功;1:失败  
251 - */  
252 -- (int)modifyGroupIntroduction:(NSString*)group introduction:(NSString*)introduction succ:(TIMSucc)succ fail:(TIMFail)fail;  
253 -  
254 -/**  
255 - * 修改群公告  
256 - *  
257 - * 1. 公开群、聊天室、直播大群:只有群主或者管理员可以修改群公告。  
258 - * 2. 私有群:任何人可修改群公告。  
259 - *  
260 - * @param group 群组Id  
261 - * @param notification 群公告(最长150字节)  
262 - * @param succ 成功回调  
263 - * @param fail 失败回调  
264 - *  
265 - * @return 0:成功;1:失败  
266 - */  
267 -- (int)modifyGroupNotification:(NSString*)group notification:(NSString*)notification succ:(TIMSucc)succ fail:(TIMFail)fail;  
268 -  
269 -/**  
270 - * 修改群头像  
271 - *  
272 - * 1. 公开群、聊天室、直播大群:只有群主或者管理员可以修改群头像。  
273 - * 2. 私有群:任何人可修改群头像。  
274 - *  
275 - * @param group 群组Id  
276 - * @param url 群头像地址(最长100字节)  
277 - * @param succ 成功回调  
278 - * @param fail 失败回调  
279 - *  
280 - * @return 0:成功;1:失败  
281 - */  
282 -- (int)modifyGroupFaceUrl:(NSString*)group url:(NSString*)url succ:(TIMSucc)succ fail:(TIMFail)fail;  
283 -  
284 -/**  
285 - * 修改加群选项  
286 - *  
287 - * 1. 公开群、聊天室、直播大群:只有群主或者管理员可以修改加群选项。  
288 - * 2. 私有群:只能通过邀请加入群组,不能主动申请加入某个群组。  
289 - *  
290 - * @param group 群组Id  
291 - * @param opt 加群选项,详见 TIMGroupAddOpt  
292 - * @param succ 成功回调  
293 - * @param fail 失败回调  
294 - *  
295 - * @return 0:成功;1:失败  
296 - */  
297 -- (int)modifyGroupAddOpt:(NSString*)group opt:(TIMGroupAddOpt)opt succ:(TIMSucc)succ fail:(TIMFail)fail;  
298 -  
299 -/**  
300 - * 修改群自定义字段集合  
301 - *  
302 - * 通过 [IM 控制台](https://console.cloud.tencent.com/avc) -> 功能配置 -> 群维度自定义字段 配置相关的 key 和权限。  
303 - *  
304 - * @param group 群组Id  
305 - * @param customInfo 自定义字段集合,key 是 NSString* 类型,value 是 NSData* 类型  
306 - * @param succ 成功回调  
307 - * @param fail 失败回调  
308 - *  
309 - * @return 0:成功;1:失败  
310 - */  
311 -- (int)modifyGroupCustomInfo:(NSString*)group customInfo:(NSDictionary*)customInfo succ:(TIMSucc)succ fail:(TIMFail)fail;  
312 -  
313 -/**  
314 - * 转让群给新群主  
315 - *  
316 - * 1. 只有群主才有权限进行群转让操作。  
317 - * 2. 直播大群不能进行群转让操作。  
318 - *  
319 - * @param group 群组Id  
320 - * @param identifier 新的群主Id  
321 - * @param succ 成功回调  
322 - * @param fail 失败回调  
323 - *  
324 - * @return 0:成功;1:失败  
325 - */  
326 -- (int)modifyGroupOwner:(NSString*)group user:(NSString*)identifier succ:(TIMSucc)succ fail:(TIMFail)fail;  
327 -  
328 -/**  
329 - * 修改接受消息选项  
330 - *  
331 - * 默认情况下,公开群和私有群是接收并离线推送群消息,聊天室和直播大群是接收但不离线推送群消息。  
332 - *  
333 - * @param group 群组Id  
334 - * @param opt 接受消息选项,详见 TIMGroupReceiveMessageOpt  
335 - * @param succ 成功回调  
336 - * @param fail 失败回调  
337 - *  
338 - * @return 0:成功;1:失败  
339 - */  
340 -- (int)modifyReciveMessageOpt:(NSString*)group opt:(TIMGroupReceiveMessageOpt)opt succ:(TIMSucc)succ fail:(TIMFail)fail;  
341 -  
342 -/**  
343 - * 修改群成员角色  
344 - *  
345 - * 1. 群主、管理员:可以进行对群成员的身份进行修改。  
346 - * 2. 直播大群:不支持修改用户群内身份。  
347 - *  
348 - * @param group 群组Id  
349 - * @param identifier 被修改角色的用户identifier  
350 - * @param role 角色(注意:不能修改为群主),详见 TIMGroupMemberRole  
351 - * @param succ 成功回调  
352 - * @param fail 失败回调  
353 - *  
354 - * @return 0:成功;1:失败  
355 - */  
356 -- (int)modifyGroupMemberInfoSetRole:(NSString*)group user:(NSString*)identifier role:(TIMGroupMemberRole)role succ:(TIMSucc)succ fail:(TIMFail)fail;  
357 -  
358 -/**  
359 - * 禁言用户  
360 - *  
361 - * 只有管理员或群主能够调用  
362 - *  
363 - * @param group 群组Id  
364 - * @param identifier 被禁言的用户identifier  
365 - * @param stime 禁言时间  
366 - * @param succ 成功回调  
367 - * @param fail 失败回调  
368 - *  
369 - * @return 0:成功;1:失败  
370 - */  
371 -- (int)modifyGroupMemberInfoSetSilence:(NSString*)group user:(NSString*)identifier stime:(uint32_t)stime succ:(TIMSucc)succ fail:(TIMFail)fail;  
372 -  
373 -/**  
374 - * 修改群名片  
375 - *  
376 - * 只有本人、管理员或群主能够调用  
377 - *  
378 - * @param group 群组Id  
379 - * @param identifier 被操作用户identifier  
380 - * @param nameCard 群名片  
381 - * @param succ 成功回调  
382 - * @param fail 失败回调  
383 - *  
384 - * @return 0:成功;1:失败  
385 - */  
386 -- (int)modifyGroupMemberInfoSetNameCard:(NSString*)group user:(NSString*)identifier nameCard:(NSString*)nameCard succ:(TIMSucc)succ fail:(TIMFail)fail;  
387 -  
388 -/**  
389 - * 修改群成员自定义字段集合  
390 - *  
391 - * 通过 [IM 控制台](https://console.cloud.tencent.com/avc) -> 功能配置 -> 群成员维度自定义字段 配置相关的 key 和权限。  
392 - *  
393 - * @param group 群组 Id  
394 - * @param identifier 被操作用户 identifier  
395 - * @param customInfo 自定义字段集合,key 是 NSString* 类型,value 是 NSData* 类型  
396 - * @param succ 成功回调  
397 - * @param fail 失败回调  
398 - *  
399 - * @return 0:成功;1:失败  
400 - */  
401 -- (int)modifyGroupMemberInfoSetCustomInfo:(NSString*)group user:(NSString*)identifier customInfo:(NSDictionary*)customInfo succ:(TIMSucc)succ fail:(TIMFail)fail;  
402 -  
403 -/**  
404 - * 修改群组是否可被搜索属性  
405 - *  
406 - * @param group 群组Id  
407 - * @param searchable 是否能被搜索  
408 - * @param succ 成功回调  
409 - * @param fail 失败回调  
410 - *  
411 - * @return 0:成功;1:失败  
412 - */  
413 -- (int)modifyGroupSearchable:(NSString*)group searchable:(BOOL)searchable succ:(TIMSucc)succ fail:(TIMFail)fail;  
414 -  
415 -/**  
416 - * 修改群组成员是否可见属性  
417 - *  
418 - * @param group 群组Id  
419 - * @param visible 是否可见  
420 - * @param succ 成功回调  
421 - * @param fail 失败回调  
422 - *  
423 - * @return 0:成功;1:失败  
424 - */  
425 -- (int)modifyGroupMemberVisible:(NSString*)group visible:(BOOL)visible succ:(TIMSucc)succ fail:(TIMFail)fail;  
426 -  
427 -/**  
428 - * 修改群组全员禁言属性  
429 - *  
430 - * 1. 群主、管理员:有权限进行全员禁言的操作。  
431 - * 2. 所有群组类型:都支持全员禁言的操作。  
432 - *  
433 - * @param group 群组Id  
434 - * @param shutup 是否禁言  
435 - * @param succ 成功回调  
436 - * @param fail 失败回调  
437 - *  
438 - * @return 0:成功;1:失败  
439 - */  
440 -- (int)modifyGroupAllShutup:(NSString*)group shutup:(BOOL)shutup succ:(TIMSucc)succ fail:(TIMFail)fail;  
441 -  
442 -/**  
443 - * 获取群组未决列表  
444 - *  
445 - * 1. 群未决消息泛指所有需要审批的群相关的操作(例如:加群待审批,拉人入群待审批等等)。即便审核通过或者拒绝后,该条信息也可通过此接口拉回,拉回的信息中有已决标志  
446 - * 2. 审批人:有权限拉取相关信息,如果 UserA 申请加入群 GroupA,则群管理员可获取此未决相关信息,UserA 因为没有审批权限,不需要拉取未决信息。如果 AdminA 拉 UserA 进去 GroupA,则 UserA 可以拉取此未决相关信息,因为该未决信息待 UserA 审批。  
447 - *  
448 - * @param option 未决参数配置  
449 - * @param succ 成功回调,返回未决列表  
450 - * @param fail 失败回调  
451 - *  
452 - * @return 0:成功;1:失败  
453 - */  
454 -- (int)getPendencyFromServer:(TIMGroupPendencyOption*)option succ:(TIMGetGroupPendencyListSucc)succ fail:(TIMFail)fail;  
455 -  
456 -/**  
457 - * 群未决已读上报  
458 - *  
459 - * 对于未决信息,SDK 可对其和之前的所有未决信息上报已读。上报已读后,仍然可以拉取到这些未决信息,但可通过对已读时戳的判断判定未决信息是否已读。  
460 - *  
461 - * @param timestamp 上报已读时间戳  
462 - * @param succ 成功回调  
463 - * @param fail 失败回调  
464 - *  
465 - * @return 0:成功;1:失败  
466 - */  
467 -- (int)pendencyReport:(uint64_t)timestamp succ:(TIMSucc)succ fail:(TIMFail)fail;  
468 -  
469 -/**  
470 - * 获取用户所在群组信息(暂未实现)  
471 - *  
472 - * 开启本地缓存后有效  
473 - *  
474 - * @param groups 群组id(NSString*)列表,nil时返回群组列表  
475 - *  
476 - * @return 群组信息(TIMGroupInfo*)列表,assistant未同步时返回nil  
477 - */  
478 -- (NSArray*)getGroupInfo:(NSArray*)groups;  
479 -  
480 -@end  
481 -  
482 -#endif /* TIMGroupManager_Ext_h */  
1 -//  
2 -// TIMGroupManager.h  
3 -// ImSDK  
4 -//  
5 -// Created by bodeng on 17/3/15.  
6 -// Copyright (c) 2015 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef ImSDK_TIMGroupManager_h  
10 -#define ImSDK_TIMGroupManager_h  
11 -  
12 -#import "TIMComm.h"  
13 -  
14 -  
15 -@interface TIMGroupManager : NSObject  
16 -  
17 -/**  
18 - * 获取群管理器实例  
19 - *  
20 - * @return 管理器实例  
21 - */  
22 -+ (TIMGroupManager*)sharedInstance;  
23 -  
24 -/**  
25 - * 创建群组  
26 - *  
27 - * 1. 默认创建群组时,IM 通讯云服务器会生成一个唯一的 ID,该 ID 将以 @TGS# 开头,且保证在 App 中唯一,以便后续操作。  
28 - * 2. 如果用户需要自定义群组 ID,在创建时可指定 ID,自定义群组 ID 必须为可打印 ASCII 字符(0x20-0x7e),最长 48 个字节,且前缀不能为 @TGS#(避免与默认分配的群组 ID 混淆)  
29 - *  
30 - * @param type 群类型,Private,Public,ChatRoom,AVChatRoom  
31 - * @param groupId 自定义群组 ID,为空时系统自动分配  
32 - * @param groupName 群组名称  
33 - * @param succ 成功回调  
34 - * @param fail 失败回调  
35 - *  
36 - * @return 0:成功;1:失败  
37 - */  
38 -- (int)createGroup:(NSString*)type groupId:(NSString*)groupId groupName:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;  
39 -  
40 -/**  
41 - * 解散群组  
42 - *  
43 - * 1. 私有群:任何人都无法解散群组  
44 - * 2. 公开群、聊天室、直播大群:群主可以解散群组。  
45 - *  
46 - * @param group 群组Id  
47 - * @param succ 成功回调  
48 - * @param fail 失败回调  
49 - *  
50 - * @return 0:成功;1:失败  
51 - */  
52 -- (int)deleteGroup:(NSString*)group succ:(TIMSucc)succ fail:(TIMFail)fail;  
53 -  
54 -/**  
55 - * 申请加群  
56 - *  
57 - * 1. 私有群:不能由用户主动申请入群。  
58 - * 2. 公开群、聊天室:可以主动申请进入。  
59 - * 3. 直播大群:可以任意加入群组。  
60 - * 4. 如果群组设置为需要审核,申请入群后管理员和群主会收到申请入群系统消息 TIMGroupSystemElem,判断 TIMGroupSystemElem 的 Type 类型如果是 TIM_GROUP_SYSTEM_ADD_GROUP_REQUEST_TYPE ,调用消息的 accept 接口同意入群,申请人会收到同意入群的消息 TIMGroupSystemElem(Type:TIM_GROUP_SYSTEM_ADD_GROUP_ACCEPT_TYPE),调用 refuse 接口拒绝入群,申请人会收到拒绝入群的消息 TIMGroupSystemElem(Type:TIM_GROUP_SYSTEM_ADD_GROUP_REFUSE_TYPE)。  
61 - * 5. 如果群主设置为任何人可加入,则直接入群成功。  
62 - *  
63 - * @param group 申请加入的群组Id  
64 - * @param msg 申请消息  
65 - * @param succ 成功回调(申请成功等待审批)  
66 - * @param fail 失败回调  
67 - *  
68 - * @return 0:成功;1:失败  
69 - */  
70 -- (int)joinGroup:(NSString*)group msg:(NSString*)msg succ:(TIMSucc)succ fail:(TIMFail)fail;  
71 -  
72 -/**  
73 - * 主动退出群组  
74 - *  
75 - * 1. 私有群:全员可退出群组。  
76 - * 2. 公开群、聊天室、直播大群:群主不能退出。  
77 - * 3. 当用户主动退出群组时,该用户会收到退群消息 TIMGroupSystemElem(Type:TIM_GROUP_SYSTEM_QUIT_GROUP_TYPE),只有退群的用户自己可以收到。当用户调用 QuitGroup 时成功回调返回,表示已退出成功,此消息主要为了多终端同步,其他终端可以作为更新群列表的时机,本终端可以选择忽略。  
78 - *  
79 - * @param group 群组Id  
80 - * @param succ 成功回调  
81 - * @param fail 失败回调  
82 - *  
83 - * @return 0:成功;1:失败  
84 - */  
85 -- (int)quitGroup:(NSString*)group succ:(TIMSucc)succ fail:(TIMFail)fail;  
86 -  
87 -@end  
88 -  
89 -#endif  
1 -//  
2 -// TIMManager+MsgExt.h  
3 -// IMMessageExt  
4 -//  
5 -// Created by tomzhu on 2017/1/11.  
6 -//  
7 -//  
8 -  
9 -#ifndef TIMManager_MsgExt_h  
10 -#define TIMManager_MsgExt_h  
11 -  
12 -#import "TIMManager.h"  
13 -#import "TIMComm+MsgExt.h"  
14 -  
15 -@class TIMMessage;  
16 -  
17 -@interface TIMManager (MsgExt)  
18 -  
19 -/**  
20 - * 发送消息给多个用户  
21 - *  
22 - * @param msg 发送的消息  
23 - * @param users 目标用户的id列表  
24 - * @param succ 成功回调  
25 - * @param fail 失败回调  
26 - *  
27 - * @return 0 发送成功  
28 - */  
29 -- (int)sendMessage:(TIMMessage*)msg toUsers:(NSArray*)users succ:(TIMSucc)succ fail:(TIMSendToUsersFail)fail;  
30 -  
31 -/**  
32 - * 获取会话(TIMConversation*)列表  
33 - *  
34 - * @return 会话列表  
35 - */  
36 -- (NSArray*)getConversationList;  
37 -  
38 -/**  
39 - * 删除会话  
40 - *  
41 - * @param type 会话类型,TIM_C2C:表示单聊;TIM_GROUP:表示群聊  
42 - * @param receiver 用户 identifier 或者群组 Id  
43 - *  
44 - * @return TRUE:删除成功;FALSE:删除失败  
45 - */  
46 -- (BOOL)deleteConversation:(TIMConversationType)type receiver:(NSString*)receiver;  
47 -  
48 -/**  
49 - * 删除会话和消息  
50 - *  
51 - * 这里只是删除本地消息,通过 getMessage 会拉取到漫游消息,所以存在删除消息成功,但是拉取到消息的情况,取决于是否重新从漫游拉回到本地。如果不需要拉取漫游,可以通过 getLocalMessage 获取本地消息,或者只通过 getMessage 拉取指定条数(如未读条数数量)的消息。  
52 - *  
53 - * @param type 会话类型,TIM_C2C:表示单聊;TIM_GROUP:表示群聊  
54 - * @param receiver 用户identifier 或者 群组 Id  
55 - *  
56 - * @return TRUE:删除成功;FALSE:删除失败  
57 - */  
58 -- (BOOL)deleteConversationAndMessages:(TIMConversationType)type receiver:(NSString*)receiver;  
59 -  
60 -/**  
61 - * 获取会话数量  
62 - *  
63 - * @return 会话数量  
64 - */  
65 -- (int)conversationCount;  
66 -  
67 -/**  
68 - * 初始化存储(暂未实现)  
69 - *  
70 - * 仅查看历史消息时使用,如果要收发消息等操作,如login成功,不需要调用此函数  
71 - *  
72 - * @param param 登陆参数(userSig 不用填写)  
73 - * @param succ 成功回调,收到回调时,可以获取会话列表和消息  
74 - * @param fail 失败回调  
75 - *  
76 - * @return 0:请求成功;1:失败  
77 - */  
78 -- (int)initStorage:(TIMLoginParam*)param succ:(TIMLoginSucc)succ fail:(TIMFail)fail;  
79 -  
80 -@end  
81 -  
82 -  
83 -#endif /* TIMManager_MsgExt_h */  
1 -//  
2 -// TIMManager.h  
3 -// ImSDK  
4 -//  
5 -// Created by bodeng on 28/1/15.  
6 -// Copyright (c) 2015 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef ImSDK_TIMManager_h  
10 -#define ImSDK_TIMManager_h  
11 -  
12 -#import "TIMComm.h"  
13 -#import "TIMCallback.h"  
14 -  
15 -@class TIMGroupManager;  
16 -@class TIMFriendshipManager;  
17 -  
18 -/////////////////////////////////////////////////////////  
19 -/// Tencent 开放 SDK API  
20 -/////////////////////////////////////////////////////////  
21 -  
22 -/**  
23 - * 通讯管理  
24 - */  
25 -@interface TIMManager : NSObject  
26 -  
27 -/////////////////////////////////////////////////////////////////////////////////  
28 -//  
29 -// (一)初始化相关接口函数  
30 -//  
31 -/////////////////////////////////////////////////////////////////////////////////  
32 -  
33 -/// @name 初始化相关接口  
34 -/// @{  
35 -/**  
36 - * 1.1 获取管理器实例 TIMManager  
37 - *  
38 - * @return 管理器实例  
39 - */  
40 -+ (TIMManager*)sharedInstance;  
41 -  
42 -/**  
43 - * 1.2 初始化 SDK,设置全局配置信息  
44 - *  
45 - * 初始化 SDK 需要设置 TIMSdkConfig 信息,TIMSdkConfig 主要包含 sdkAppId 和 accountType 设置、Log 相关逻辑设置、数据库存储路径设置、网络监听设置等,其中 sdkAppId 和 accountType 的获取请参考官网文档 [跑通Demo(iOS与Mac)](https://cloud.tencent.com/document/product/269/32674)。  
46 - *  
47 - * @param config 配置信息,全局有效,详情请参考 TIMComm.h 中的 TIMSdkConfig 定义  
48 - *  
49 - * @return 0:成功;1:失败,config 为 nil  
50 - */  
51 -- (int)initSdk:(TIMSdkConfig*)config;  
52 -  
53 -/**  
54 - * 1.3 获取全局配置信息  
55 - *  
56 - * 获取初始化 SDK 时候设置的 TIMSdkConfig,方便客户在上层做相关业务逻辑。  
57 - *  
58 - * @return 全局配置,详情请参考 TIMComm.h 中的 TIMSdkConfig 定义  
59 - */  
60 -- (TIMSdkConfig*)getGlobalConfig;  
61 -  
62 -/**  
63 - * 1.4 设置用户配置信息  
64 - *  
65 - * 1. setUserConfig 要在 initSdk 之后,login 之前,主要用来开启/关闭自动已读上报和已读回执,设置默认拉取的群组资料,群成员资料字段,监听用户登录状态、会话刷新、消息已读回执、文件上传进度、群组事件通知。  
66 - * 2. 自动已读上报默认是开启的,当客户端收到一条未读消息后,Server 默认会删除这条未读消息,切换终端以后无法看到之前终端已经拉回的未读消息,如果需要多终端情况下仍然会有未读,请设置 TIMUserConfig 中的 disableAutoReport 为 YES,一旦禁用自动上报,开发者需要显式调用 setReadMessage,详情请参考官方文档 [未读消息计数](https://cloud.tencent.com/document/product/269/9151)。  
67 - * 3. C2C 已读回执默认是关闭的,如果需要开启,请设置 TIMUserConfig 中的 enableReadReceipt 为 YES,收到消息的用户需要显式调用 setReadMessage,发消息的用户才能通过 TIMMessageReceiptListener 监听到消息的已读回执。  
68 - * 4. 当您获取群资料的时候,默认只能拉取内置字段,如果想要拉取自定义字段,首先要通过 [IM 控制台](https://console.cloud.tencent.com/avc) -> 功能配置 -> 群维度自定义字段 配置相关的 key 和权限,然后把生成的 key 设置在 IMGroupInfoOption 里面的 groupCustom 字段。需要注意的是,只有对自定义字段 value 做了赋值或则修改,才能拉取到自定义字段。  
69 - * 5. 当您获取群成员资料的时候,默认只能拉取内置字段,如果想要拉取自定义字段,首先要通过 [IM 控制台](https://console.cloud.tencent.com/avc) -> 功能配置 -> 群成员维度自定义字段配置相关的 key 和权限,然后把生成的 key 设置在 TIMGroupMemberInfoOption 里面的 memberCustom 字段。需要注意的是,只有对自定义字段的 value 做了赋值或则修改,才能拉取到自定义字段。  
70 - *  
71 - * @param config 配置信息,对当前 TIMManager 有效,详情请参考 TIMComm.h 中的 TIMUserConfig 定义  
72 - *  
73 - * @return 0:成功;1:失败,config 为 nil  
74 - */  
75 -- (int)setUserConfig:(TIMUserConfig*)config;  
76 -  
77 -/**  
78 - * 1.5 获取用户配置信息  
79 - *  
80 - * 获取设置的用户配置信息 TIMSdkConfig,方便客户在上层做相关业务逻辑。  
81 - *  
82 - * @return 当前 manager 绑定用户的配置,详情请参考 TIMComm.h 中的 TIMUserConfig 定义  
83 - */  
84 -- (TIMUserConfig*)getUserConfig;  
85 -  
86 -/**  
87 - * 1.6 添加消息监听(重复添加无效)  
88 - *  
89 - * 添加消息监听后,会在 TIMMessageListener 的 onNewMessage 收到回调消息,消息内容通过参数 TIMMessage 传递,通过 TIMMessage 可以获取消息和相关会话的详细信息,如消息文本,语音数据,图片等。详细可参阅 [消息解析](https://cloud.tencent.com/document/product/269/9150#.E6.B6.88.E6.81.AF.E8.A7.A3.E6.9E.90) 部分。  
90 - *  
91 - * @param listener 回调,详情请参考 TIMCallback.h 中的 TIMMessageListener 定义  
92 - *  
93 - * @return 0:成功;1:失败,listener 为 nil  
94 - */  
95 -- (int)addMessageListener:(id<TIMMessageListener>)listener;  
96 -  
97 -/**  
98 - * 1.7 移除消息监听  
99 - *  
100 - * @param listener 回调,详情请参考 TIMCallback.h 中的 TIMMessageListener 定义  
101 - *  
102 - * @return 0:成功;1:失败,listener 为 nil  
103 - */  
104 -- (int)removeMessageListener:(id<TIMMessageListener>)listener;  
105 -  
106 -/// @}  
107 -  
108 -/////////////////////////////////////////////////////////////////////////////////  
109 -//  
110 -// (二)登录相关接口  
111 -//  
112 -/////////////////////////////////////////////////////////////////////////////////  
113 -  
114 -/// @name 登录相关接口  
115 -/// @{  
116 -/**  
117 - * 2.1 登录  
118 - *  
119 - * 1. 登录需要设置用户名 identifier 和用户签名 userSig,userSig 的生成请参考官网文档 [UserSig 后台 API](https://cloud.tencent.com/document/product/269/32688)。  
120 - * 2. 如果 userSig 过期,登录会返回 ERR_USER_SIG_EXPIRED:6206 错误码,收到错误码后请生成新的 userSig 重新登录。  
121 - * 3. 用户在线情况下被踢,会在 TIMUserConfig 里面配置的 TIMUserStatusListener 监听器获取 onForceOffline 回调,收到回调后可以选择重新登录。  
122 - * 4. 用户离线状态下被踢,由于此时用户不在线,无法感知此事件,为了显式提醒用户,用户重新登录时,会返回 ERR_IMSDK_KICKED_BY_OTHERS:6208 错误码,表明之前被踢,如果需要把对方踢下线,再次调用 login 强制上线,更多详情请参考 [用户状态变更](https://cloud.tencent.com/document/product/269/9148#5.-.E7.94.A8.E6.88.B7.E7.8A.B6.E6.80.81.E5.8F.98.E6.9B.B4)。  
123 - *  
124 - * @param param 登陆参数,详情请参考 TIMComm.h 中的 TIMLoginParam 定义  
125 - * @param succ 成功回调,详情请参考 TIMComm.h 中的 TIMLoginSucc 定义  
126 - * @param fail 失败回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
127 - *  
128 - * @return 0:成功;1:失败,请检查 param 参数是否正常  
129 - */  
130 -- (int)login: (TIMLoginParam*)param succ:(TIMLoginSucc)succ fail:(TIMFail)fail;  
131 -  
132 -/**  
133 - * 2.2 自动登录  
134 - *  
135 - * 1. 首次登陆之后,SDK 会把登陆信息存在在本地,下次登陆即可调用自动登录  
136 - * 2. 如果用户之前没有登录过,或则 APP 被卸载过,自动登录会报 ERR_NO_PREVIOUS_LOGIN:6026 错误,这个时候请调用 login 接口重新登录。  
137 - *  
138 - * @param param 登陆参数( userSig 不用填),详情请参考 TIMComm.h 中的 TIMLoginParam 定义  
139 - * @param succ 成功回调,详情请参考 TIMComm.h 中的 TIMLoginSucc 定义  
140 - * @param fail 失败回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
141 - *  
142 - * @return 0:成功;1:失败,请检查 param 参数是否正常  
143 - */  
144 -- (int)autoLogin:(TIMLoginParam*)param succ:(TIMLoginSucc)succ fail:(TIMFail)fail;  
145 -  
146 -/**  
147 - * 2.3 登出  
148 - *  
149 - * 退出登录,如果切换账号,需要 logout 回调成功或者失败后才能再次 login,否则 login 可能会失败。  
150 - *  
151 - * @param succ 成功回调,登出成功  
152 - * @param fail 失败回调,返回错误吗和错误信息  
153 - *  
154 - * @return 0:发送登出包成功,等待回调;1:失败  
155 - */  
156 -- (int)logout:(TIMLoginSucc)succ fail:(TIMFail)fail;  
157 -  
158 -/**  
159 - * 2.4 获取当前登陆的用户  
160 - *  
161 - * @return 如果登陆返回用户的 identifier,如果未登录返回 nil  
162 - */  
163 -- (NSString*)getLoginUser;  
164 -  
165 -/**  
166 - * 2.5 获取当前登录状态  
167 - *  
168 - * @return 登录状态,详情请参考 TIMComm.h 中的 TIMLoginStatus 定义  
169 - */  
170 -- (TIMLoginStatus)getLoginStatus;  
171 -  
172 -/// @}  
173 -  
174 -/////////////////////////////////////////////////////////////////////////////////  
175 -//  
176 -// (三)获取会话管理器  
177 -//  
178 -/////////////////////////////////////////////////////////////////////////////////  
179 -/// @name 获取会话管理器  
180 -/// @{  
181 -/**  
182 - * 获取会话管理器  
183 - *  
184 - * TIMConversation 负责会话相关操作,包含发送消息、获取会话消息缓存、获取未读计数等。  
185 - *  
186 - * @param type 会话类型,TIM_C2C:单聊;TIM_GROUP:群聊;TIM_SYSTEM:系统会话  
187 - * @param receiver 会话接收者,C2C:为对方用户;identifier;GROUP:群组 Id;SYSTEM:@""  
188 - *  
189 - * @return 会话对象,详情请参考 TIMConversation.h 里面的 TIMConversation 定义  
190 - */  
191 -- (TIMConversation*)getConversation:(TIMConversationType)type receiver:(NSString*)receiver;  
192 -  
193 -/// @}  
194 -  
195 -/////////////////////////////////////////////////////////////////////////////////  
196 -//  
197 -// (四)获取群管理器  
198 -//  
199 -/////////////////////////////////////////////////////////////////////////////////  
200 -/// @name 获取群管理器  
201 -/// @{  
202 -/**  
203 - * 获取群管理器  
204 - *  
205 - * TIMGroupManager 负责创建群、增删成员、以及修改群资料等  
206 - *  
207 - * @return 群管理器,详情请参考 TIMGroupManager.h 中的 TIMGroupManager 定义  
208 - */  
209 -- (TIMGroupManager*)groupManager;  
210 -  
211 -/// @}  
212 -  
213 -/////////////////////////////////////////////////////////////////////////////////  
214 -//  
215 -// (五)获取好友管理器  
216 -//  
217 -/////////////////////////////////////////////////////////////////////////////////  
218 -///@name 获取好友管理器  
219 -/// @{  
220 -/**  
221 - * 获取好友管理器  
222 - *  
223 - * TIMFriendshipManager 负责加好友,删除好友,查询好友列表等  
224 - *  
225 - * @return 好友管理器,详情请参考 TIMFriendshipManager.h 中的 TIMFriendshipManager 定义  
226 - */  
227 -- (TIMFriendshipManager*)friendshipManager;  
228 -  
229 -/// @}  
230 -  
231 -/////////////////////////////////////////////////////////////////////////////////  
232 -//  
233 -// (六)设置 APNs 推送  
234 -//  
235 -/////////////////////////////////////////////////////////////////////////////////  
236 -/// @name 设置 APNs 推送  
237 -/// @{  
238 -/**  
239 - * 6.1. 设置客户端 Token 和证书 busiId  
240 - *  
241 - * 1. token 是向苹果后台请求 DeviceToken,具体实现请参考 appdelegate.h 里面的 registNotification。  
242 - * 2. busiId 是向 IM 控制台上传 iOS 证书(p.12)生成的,具体步骤请参考 [离线推送](https://cloud.tencent.com/document/product/269/9154)。  
243 - *  
244 - * @param token 详情请参考 TIMComm.h 中的 TIMTokenParam 定义  
245 - * @param succ 成功回调,详情请参考 TIMComm.h 中的 TIMSucc 定义  
246 - * @param fail 失败回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
247 - *  
248 - * @return 0:成功;1:失败,token 参数异常  
249 - */  
250 -- (int)setToken:(TIMTokenParam*)token succ:(TIMSucc)succ fail:(TIMFail)fail;  
251 -  
252 -/**  
253 - * 6.2. 设置推送声音  
254 - *  
255 - * 不同用户可能想使用不同的推送声音,TIMAPNSConfig 提供了设置用户声音的字段,可实现单聊声音、群组声音的设置,也可在用户级别设置是否开启推送。  
256 - *  
257 - * @param config APNS 配置,详情请参考 TIMComm.h 中的 TIMAPNSConfig 定义  
258 - * @param succ 成功回调,详情请参考 TIMComm.h 中的 TIMSucc 定义  
259 - * @param fail 失败回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
260 - *  
261 - * @return 0:成功;1:失败,config 参数异常  
262 - */  
263 -- (int)setAPNS:(TIMAPNSConfig*)config succ:(TIMSucc)succ fail:(TIMFail)fail;  
264 -  
265 -/**  
266 - * 6.3. 获取推送声音设置  
267 - *  
268 - * @param succ 成功回调,返回配置信息,详情请参考 TIMComm.h 中的 TIMAPNSConfigSucc 定义  
269 - * @param fail 失败回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
270 - *  
271 - * @return 0:成功;1:失败  
272 - */  
273 -- (int)getAPNSConfig:(TIMAPNSConfigSucc)succ fail:(TIMFail)fail;  
274 -  
275 -/**  
276 - * 6.4. APP 进后台  
277 - *  
278 - * APP 进后台的时候需要主动调用 doBackground ,这个时候后台知道 APP 的状态,之后的消息会下发推送通知。  
279 - *  
280 - * @param param 上报参数,详情请参考 TIMComm.h 中的 TIMBackgroundParam 定义  
281 - * @param succ 成功时回调,详情请参考 TIMComm.h 中的 TIMSucc 定义  
282 - * @param fail 失败时回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
283 - *  
284 - * @return 0:成功;1:失败  
285 - */  
286 -- (int)doBackground:(TIMBackgroundParam*)param succ:(TIMSucc)succ fail:(TIMFail)fail;  
287 -  
288 -  
289 -/**  
290 - * 6.5. APP 进后台  
291 - *  
292 - * APP 进前台的时候需要主动调用 doForeground。  
293 - *  
294 - * @param succ 成功时回调,详情请参考 TIMComm.h 中的 TIMSucc 定义  
295 - * @param fail 失败时回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
296 - *  
297 - * @return 0:成功;1:失败  
298 - */  
299 -- (int)doForeground:(TIMSucc)succ fail:(TIMFail)fail;  
300 -  
301 -/// @}  
302 -  
303 -/////////////////////////////////////////////////////////////////////////////////  
304 -//  
305 -// (七)多账号登录接口  
306 -//  
307 -/////////////////////////////////////////////////////////////////////////////////  
308 -///@name 多账号登录接口  
309 -/// @{  
310 -/**  
311 - * 创建新的管理器类型(多用户登陆时使用,否则可直接调用 sharedInstance)  
312 - *  
313 - * @return 管理器实例  
314 - */  
315 -+ (TIMManager*)newManager;  
316 -  
317 -/**  
318 - * 获取管理器类型(多用户登陆时使用,否则可直接调用 sharedInstance)  
319 - *  
320 - * @param identifier 用户 identifier  
321 - *  
322 - * @return 对应管理器类型,如果没有创建过,返回 nil  
323 - */  
324 -+ (TIMManager*)getManager:(NSString*)identifier;  
325 -  
326 -/**  
327 - * 销毁管理器(多用户登陆时使用,否则可直接调用 sharedInstance)  
328 - *  
329 - * @param manager 需要销毁的管理器  
330 - */  
331 -+ (void)deleteManager:(TIMManager*)manager;  
332 -  
333 -/// @}  
334 -  
335 -/////////////////////////////////////////////////////////////////////////////////  
336 -//  
337 -// (八)调试相关接口  
338 -//  
339 -/////////////////////////////////////////////////////////////////////////////////  
340 -/// @name 调试相关接口  
341 -/// @{  
342 -/**  
343 - * 获取网络状态  
344 - *  
345 - * @return 网络状态,详情请参考 TIMComm.h 中的 TIMNetworkStatus 定义  
346 - */  
347 -- (TIMNetworkStatus)networkStatus;  
348 -  
349 -/**  
350 - * 设置环境(暂未实现)  
351 - *  
352 - * 在 InitSdk 之前调用,注意:除非是 IM 工作人员指定要求设置,否则不需要调用此接口  
353 - *  
354 - * @param env 0:正式环境(默认);1:测试环境  
355 - *  
356 - */  
357 -- (void)setEnv:(int)env;  
358 -  
359 -/**  
360 - * 获取环境类型(暂未实现)  
361 - *  
362 - * @return env 0:正式环境(默认);1:测试环境  
363 - *  
364 - */  
365 -- (int)getEnv;  
366 -  
367 -/**  
368 - * 获取版本号  
369 - *  
370 - * @return 返回版本号,字符串表示,例如 v1.1.1  
371 - */  
372 -- (NSString*)GetVersion;  
373 -  
374 -/**  
375 - * 打印日志,通过 ImSDK 提供的日志功能打印日志  
376 - *  
377 - * @param level 日志级别,详情请参考 TIMComm.h 中的 TIMLogLevel 定义  
378 - * @param tag 模块 tag  
379 - * @param msg 要输出的日志内容  
380 - */  
381 -- (void)log:(TIMLogLevel)level tag:(NSString*)tag msg:(NSString*)msg;  
382 -  
383 -/**  
384 - * 获取日志文件路径  
385 - */  
386 -- (NSString*)getLogPath;  
387 -  
388 -/**  
389 - * 是否开启 sdk 日志打印  
390 - *  
391 - * @return YES:允许 log 打印;NO:不允许 log 打印  
392 - */  
393 -- (BOOL)getIsLogPrintEnabled;  
394 -  
395 -/**  
396 - * 获取日志级别  
397 - *  
398 - * @return 返回日志级别,详情请参考 TIMComm.h 中的 TIMLogLevel 定义  
399 - */  
400 --(TIMLogLevel) getLogLevel;  
401 -  
402 -///@}  
403 -  
404 -/////////////////////////////////////////////////////////////////////////////////  
405 -//  
406 -// (九)废弃接口  
407 -//  
408 -/////////////////////////////////////////////////////////////////////////////////  
409 -/// @name 废弃接口  
410 -/// @{  
411 -/**  
412 - * 获取联网SDK的版本号 (方法已废弃, SDK 不再依赖 QAL 库)  
413 - *  
414 - * @return 返回版本号  
415 - */  
416 -- (NSString*)GetQALVersion;  
417 -  
418 -///@}  
419 -@end  
420 -#endif  
1 -//  
2 -// TIMMessage+MsgExt.h  
3 -// IMMessageExt  
4 -//  
5 -// Created by tomzhu on 2016/12/27.  
6 -//  
7 -//  
8 -  
9 -#ifndef TIMMessage_h  
10 -#define TIMMessage_h  
11 -  
12 -#import "TIMMessage.h"  
13 -#import "TIMComm+MsgExt.h"  
14 -  
15 -#pragma mark - Elem类型  
16 -  
17 -/////////////////////////////////////////////////////////////////////////////////  
18 -//  
19 -// (一)关系链变更消息  
20 -//  
21 -/////////////////////////////////////////////////////////////////////////////////  
22 -/// @name 关系链变更消息  
23 -/// @{  
24 -@interface TIMSNSSystemElem : TIMElem  
25 -  
26 -/**  
27 - * 操作类型  
28 - */  
29 -@property(nonatomic,assign) TIM_SNS_SYSTEM_TYPE type;  
30 -  
31 -/**  
32 - * 被操作用户列表:TIMSNSChangeInfo 列表  
33 - */  
34 -@property(nonatomic,strong) NSArray * users;  
35 -  
36 -/**  
37 - * 未决已读上报时间戳 type = TIM_SNS_SYSTEM_PENDENCY_REPORT 有效  
38 - */  
39 -@property(nonatomic,assign) uint64_t pendencyReportTimestamp;  
40 -  
41 -/**  
42 - * 推荐已读上报时间戳 type = TIM_SNS_SYSTEM_RECOMMEND_REPORT 有效  
43 - */  
44 -@property(nonatomic,assign) uint64_t recommendReportTimestamp;  
45 -  
46 -/**  
47 - * 已决已读上报时间戳 type = TIM_SNS_SYSTEM_DECIDE_REPORT 有效  
48 - */  
49 -@property(nonatomic,assign) uint64_t decideReportTimestamp;  
50 -  
51 -@end  
52 -  
53 -/// @}  
54 -  
55 -/////////////////////////////////////////////////////////////////////////////////  
56 -//  
57 -// (二)资料变更消息  
58 -//  
59 -/////////////////////////////////////////////////////////////////////////////////  
60 -/// @name 资料变更消息  
61 -/// @{  
62 -@interface TIMProfileSystemElem : TIMElem  
63 -  
64 -/**  
65 - * 变更类型  
66 - */  
67 -@property(nonatomic,assign) TIM_PROFILE_SYSTEM_TYPE type;  
68 -  
69 -/**  
70 - * 资料变更的用户  
71 - */  
72 -@property(nonatomic,strong) NSString * fromUser;  
73 -  
74 -/**  
75 - * 资料变更的昵称(如果昵称没有变更,该值为 nil)  
76 - */  
77 -@property(nonatomic,strong) NSString * nickName;  
78 -  
79 -@end  
80 -  
81 -/// @}  
82 -  
83 -/////////////////////////////////////////////////////////////////////////////////  
84 -//  
85 -// (三)消息扩展接口  
86 -//  
87 -/////////////////////////////////////////////////////////////////////////////////  
88 -/// @name 消息扩展接口  
89 -/// @{  
90 -@interface TIMMessage (MsgExt)  
91 -  
92 -/**  
93 - * 自己是否已读  
94 - *  
95 - * @return TRUE:已读;FALSE:未读  
96 - */  
97 -- (BOOL)isReaded;  
98 -  
99 -/**  
100 - * 对方是否已读(仅 C2C 消息有效)  
101 - *  
102 - * @return TRUE:已读;FALSE:未读  
103 - */  
104 -- (BOOL)isPeerReaded;  
105 -  
106 -/**  
107 - * 删除消息  
108 - *  
109 - * 目前暂不支持 Server 消息删除,只能在本地删除。删除后使用 getMessage 拉取本地消息,不会返回被删除的消息。  
110 - *  
111 - * @return TRUE:成功;FALSE:失败  
112 - */  
113 -- (BOOL)remove;  
114 -  
115 -/**  
116 - * 消息是否有断层  
117 - *  
118 - * OnNewMessage 回调收到消息,如果有断层,需要重新 getMessage 补全(有C2C漫游的情况下使用)  
119 - *  
120 - * @return TRUE:有断层;FALSE:无断层  
121 - */  
122 -- (BOOL)hasGap;  
123 -  
124 -/**  
125 - * 设置自定义整数,默认为 0  
126 - *  
127 - * 1.此自定义字段仅存储于本地,不会同步到 Server,用户卸载应用或则更换终端后无法获取。  
128 - * 2.可以根据这个字段设置语音消息是否已经播放,如 customInt 的值 0 表示未播放,1 表示播放,当用户单击播放后可设置 customInt 的值为 1。  
129 - *  
130 - * @param param 设置参数  
131 - *  
132 - * @return TRUE:设置成功;FALSE:设置失败  
133 - */  
134 -- (BOOL)setCustomInt:(int32_t)param;  
135 -  
136 -/**  
137 - * 设置自定义数据,默认为""  
138 - *  
139 - * 此自定义字段仅存储于本地,不会同步到 Server,用户卸载应用或则更换终端后无法获取。  
140 - *  
141 - * @param data 设置参数  
142 - *  
143 - * @return TRUE:设置成功;FALSE:设置失败  
144 - */  
145 -- (BOOL)setCustomData:(NSData*)data;  
146 -  
147 -/**  
148 - * 获取 CustomInt  
149 - *  
150 - * @return CustomInt  
151 - */  
152 -- (int32_t)customInt;  
153 -  
154 -/**  
155 - * 获取 CustomData  
156 - *  
157 - * @return CustomData  
158 - */  
159 -- (NSData*)customData;  
160 -  
161 -/**  
162 - * 获取消息定位符  
163 - *  
164 - * @return locator,详情请参考 TIMComm.h 里面的 TIMMessageLocator 定义  
165 - */  
166 -- (TIMMessageLocator*)locator;  
167 -  
168 -/**  
169 - * 是否为 locator 对应的消息  
170 - *  
171 - * @param locator 消息定位符  
172 - *  
173 - * @return YES 是对应的消息  
174 - */  
175 -- (BOOL)respondsToLocator:(TIMMessageLocator*)locator;  
176 -  
177 -/**  
178 - * 设置消息时间戳  
179 - *  
180 - * 需要先将消息到导入到本地,调用 convertToImportedMsg 方法  
181 - *  
182 - * @param time 时间戳  
183 - *  
184 - * @return 0:成功;1:失败  
185 - */  
186 -- (int)setTime:(time_t)time;  
187 -  
188 -/**  
189 - * 设置消息发送方  
190 - *  
191 - * 需要先将消息到导入到本地,调用 convertToImportedMsg 方法  
192 - *  
193 - * @param sender 发送方Id  
194 - *  
195 - * @return 0:成功;1:失败  
196 - */  
197 -- (int)setSender:(NSString*)sender;  
198 -  
199 -/**  
200 - * 将消息导入到本地  
201 - *  
202 - * 只有调用这个接口,才能去修改消息的时间戳和发送方  
203 - *  
204 - * @return 0:成功;1:失败  
205 - */  
206 -- (int)convertToImportedMsg;  
207 -  
208 -/// @}  
209 -  
210 -@end  
211 -  
212 -/////////////////////////////////////////////////////////////////////////////////  
213 -//  
214 -// (四)草稿箱  
215 -//  
216 -/////////////////////////////////////////////////////////////////////////////////  
217 -/// @name 草稿箱  
218 -/// @{  
219 -@interface TIMMessageDraft : NSObject  
220 -  
221 -/**  
222 - * 设置自定义数据  
223 - *  
224 - * @param userData 自定义数据  
225 - *  
226 - * @return 0:成功;1:失败  
227 - */  
228 -- (int)setUserData:(NSData*)userData;  
229 -  
230 -/**  
231 - * 获取自定义数据  
232 - *  
233 - * @return 自定义数据  
234 - */  
235 -- (NSData*)getUserData;  
236 -  
237 -/**  
238 - * 增加Elem  
239 - *  
240 - * @param elem elem结构  
241 - *  
242 - * @return 0:表示成功;1:禁止添加Elem(文件或语音多于两个Elem);2:未知Elem  
243 - *  
244 - */  
245 -- (int)addElem:(TIMElem*)elem;  
246 -  
247 -/**  
248 - * 获取对应索引的 Elem  
249 - *  
250 - * @param index 对应索引  
251 - *  
252 - * @return 返回对应 Elem  
253 - */  
254 -- (TIMElem*)getElem:(int)index;  
255 -  
256 -/**  
257 - * 获取Elem数量  
258 - *  
259 - * @return elem数量  
260 - */  
261 -- (int)elemCount;  
262 -  
263 -/**  
264 - * 草稿生成对应的消息  
265 - *  
266 - * @return 消息,详情请参考 TIMMessage.h 里面的 TIMMessage 定义  
267 - */  
268 -- (TIMMessage*)transformToMessage;  
269 -  
270 -/**  
271 - * 当前消息的时间戳  
272 - *  
273 - * @return 时间戳  
274 - */  
275 -- (NSDate*)timestamp;  
276 -  
277 -/// @}  
278 -  
279 -@end  
280 -  
281 -#endif /* TIMMessage_h */