| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |
- //
- // 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
|