TIMManager.h
5.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
//
// TIMManager.h
// ImSDK
//
// Created by bodeng on 28/1/15.
// Copyright (c) 2015 tencent. All rights reserved.
//
#ifndef ImSDK_TIMManager_h
#define ImSDK_TIMManager_h
#import "TIMComm.h"
#import "TIMCallback.h"
@class TIMGroupManager;
//@class TIMFriendshipManager;
/////////////////////////////////////////////////////////
/// Tencent 开放 SDK API
/////////////////////////////////////////////////////////
/**
* 通讯管理
*/
@interface TIMManager : NSObject
/**
* 获取管理器实例
*
* @return 管理器实例
*/
+ (TIMManager*)sharedInstance;
/**
* 初始化SDK
*
* @param config 配置信息,全局有效
*
* @return 0 成功
*/
- (int)initSdk:(TIMSdkConfig*)config;
/**
* 获取全局配置
*
* @return 全局配置
*/
- (TIMSdkConfig*)getGlobalConfig;
/**
* 初始化当前manager,在initSdk:后调用,login:前调用
*
* @param config 配置信息,对当前TIMManager有效
*
* @return 0 成功
*/
- (int)setUserConfig:(TIMUserConfig*)config;
/**
* 获取当前manager绑定用户的配置
*
* @return 当前manager绑定用户的配置
*/
- (TIMUserConfig*)getUserConfig;
/**
* 添加消息回调(重复添加无效)
*
* @param listener 回调
*
* @return 成功
*/
- (int)addMessageListener:(id<TIMMessageListener>)listener;
/**
* 移除消息回调
*
* @param listener 回调
*
* @return 成功
*/
- (int)removeMessageListener:(id<TIMMessageListener>)listener;
/**
* 登陆
*
* @param param 登陆参数
* @param succ 成功回调
* @param fail 失败回调
*
* @return 0 请求成功
*/
- (int)login: (TIMLoginParam*)param succ:(TIMLoginSucc)succ fail:(TIMFail)fail;
/**
* 获取当前登陆的用户
*
* @return 如果登陆返回用户的identifier,如果未登录返回nil
*/
- (NSString*)getLoginUser;
/**
* 获取当前登录状态
*
* @return 登录状态
*/
- (TIMLoginStatus)getLoginStatus;
/**
* 登出
*
* @param succ 成功回调,登出成功
* @param fail 失败回调,返回错误吗和错误信息
*
* @return 0 发送登出包成功,等待回调
*/
- (int)logout:(TIMLoginSucc)succ fail:(TIMFail)fail;
#pragma mark - 消息会话操作
/**
* 获取会话
*
* @param type 会话类型,TIM_C2C 表示单聊 TIM_GROUP 表示群聊
* TIM_SYSTEM 表示系统会话
* @param receiver C2C 为对方用户 identifier,GROUP 为群组Id,SYSTEM为@""
*
* @return 会话对象
*/
- (TIMConversation*)getConversation:(TIMConversationType)type receiver:(NSString*)receiver;
#pragma mark - APNs推送
/**
* 设置Token,需要登录后调用
*
* @param token token信息
* @param succ 成功回调
* @param fail 失败回调
*
* @return 0 成功
*/
- (int)setToken:(TIMTokenParam*)token succ:(TIMSucc)succ fail:(TIMFail)fail;
/**
* 设置APNS配置
*
* @param config APNS配置
* @param succ 成功回调
* @param fail 失败回调
*
* @return 0 成功
*/
- (int)setAPNS:(TIMAPNSConfig*)config succ:(TIMSucc)succ fail:(TIMFail)fail;
/**
* 获取APNS配置
*
* @param succ 成功回调,返回配置信息
* @param fail 失败回调
*
* @return 0 成功
*/
- (int)getAPNSConfig:(TIMAPNSConfigSucc)succ fail:(TIMFail)fail;
/**
* app 切后台时调用
*
* @param param 上报参数
* @param succ 成功时回调
* @param fail 失败时回调
*
* @return 0 表示成功
*/
- (int)doBackground:(TIMBackgroundParam*)param succ:(TIMSucc)succ fail:(TIMFail)fail;
/**
* 切前台
*
* @param succ 成功时回调
* @param fail 失败时回调
*
* @return 0 表示成功
*/
- (int)doForeground:(TIMSucc)succ fail:(TIMFail)fail;
#pragma mark - 调试使用
/**
* 获取网络状态
*/
- (TIMNetworkStatus)networkStatus;
/**
* 设置环境(在InitSdk之前调用,注意:除非是IM工作人员指定要求设置,否则不需要调用此接口)
*
* @param env 0 正式环境(默认)
* 1 测试环境
*/
- (void)setEnv:(int)env;
/**
* 获取环境类型
*
* @return env 0 正式环境(默认)
* 1 测试环境
* 2 beta 环境
*/
- (int)getEnv;
/**
* 获取版本号
*
* @return 返回版本号,字符串表示,例如v1.1.1
*/
- (NSString*)GetVersion;
/**
* 获取联网SDK的版本号
*
* @return 返回版本号
*/
- (NSString*)GetQALVersion;
/**
* 打印日志,通过ImSDK提供的日志功能打印日志
*
* @param level 日志级别
* @param tag 模块tag
* @param msg 要输出的日志内容
*/
- (void)log:(TIMLogLevel)level tag:(NSString*)tag msg:(NSString*)msg;
#pragma mark - 登录多账号
/**
* 创建新的管理器类型(多用户登陆时使用,否则可直接调用sharedInstance)
*
* @return 管理器实例
*/
+ (TIMManager*)newManager;
/**
* 获取管理器类型(多用户登陆时使用,否则可直接调用sharedInstance)
*
* @param identifier 用户identifier
*
* @return 对应管理器类型,如果没有创建过,返回nil
*/
+ (TIMManager*)getManager:(NSString*)identifier;
/**
* 销毁管理器(多用户登陆时使用,否则可直接调用sharedInstance)
*
* @param manager 需要销毁的管理器
*/
+ (void)deleteManager:(TIMManager*)manager;
/**
* 获取好友管理器
*
* @return 好友管理器
*/
//- (TIMFriendshipManager*)friendshipManager;
/**
* 获取群管理器
*
* @return 群管理器
*/
- (TIMGroupManager*)groupManager;
#pragma mark - 内部使用的方法
/**
* 获取日志文件路径
*/
- (NSString*)getLogPath;
/**
* 是否开启sdk日志打印
*/
- (BOOL)getIsLogPrintEnabled;
/**
* 获取日志级别
*
* @return 返回日志级别
*/
-(TIMLogLevel) getLogLevel;
@end
#endif