IMAPlatform.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. //
  2. // IMAPlatform.h
  3. // TIMAdapter
  4. //
  5. // Created by AlexiChen on 16/2/17.
  6. // Copyright © 2016年 AlexiChen. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <ImSDK_Plus/ImSDK_Plus.h>
  10. // Demo的业务逻辑入口,外部所的要使用IMSDK的地方,都间接能过IMAPlatform调用
  11. typedef EQALNetworkType TCQALNetwork;
  12. @interface IMAPlatform : NSObject
  13. {
  14. @protected
  15. IMAHost *_host; // 当前用户
  16. IMAContactManager *_contactMgr; // 联系人
  17. IMAConversationManager *_conversationMgr; // 会话列表
  18. }
  19. @property (nonatomic, readonly) IMAHost *host;
  20. @property (nonatomic, readonly) IMAConversationManager *conversationMgr;
  21. @property (nonatomic, readonly) IMAContactManager *contactMgr;
  22. @property (nonatomic, assign) BOOL isConnected; // 当前是否连接上,外部可用此方法判断是否有网
  23. // 当前使用的网络类型,默认wifi,只取EQALNetworkType 中对应的 -1:未知 0:无网 1:wifi 2:移动网,用户若需要,可重写对应的方法以满足自身App需求
  24. @property (nonatomic, readonly) TCQALNetwork networkType;
  25. // 被踢下线时,如果当前在直播的时候,进行调用
  26. @property (nonatomic, copy) CommonBlock offlineExitLivingBlock;
  27. + (instancetype)configWith:(IMAPlatformConfig *)cfg;
  28. // 配置自定义的_host,hostcls须为IMAHost的子类
  29. + (void)configHostClass:(Class)hostcls;
  30. + (instancetype)sharedInstance;
  31. // 是否是自动登录
  32. + (BOOL)isAutoLogin;
  33. + (void)setAutoLogin:(BOOL)autologin;
  34. - (IMAPlatformConfig *)localConfig;
  35. - (void)saveToLocal;
  36. // 初始化新增的缓存同步逻辑
  37. // 退出
  38. - (void)logout:(TIMLoginSucc)succ fail:(TIMFail)fail;
  39. - (IMAUser *)getReceiverOf:(IMAConversation *)conv;
  40. // 被踢下线后,再重新登录
  41. - (void)offlineLogin;
  42. - (void)onLogoutCompletion;
  43. - (void)configHost:(TIMLoginParam *)param;
  44. - (void)changeToNetwork:(TCQALNetwork)work;
  45. // 判断是否主播
  46. + (BOOL)isHost:(NSString *)userId;
  47. @end