TIMManager.h 5.7 KB

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