环信头文件整理
2016-04-22 22:11
337 查看
SDK采用模块化设计,每一模块的功能相对独立和完善,用户可以根据自己的需求选择使用下面的模块:
EMClient是SDK的入口,主要完成登录,退出,连接管理等功能。也是获取其他模块的入口。
EMChatManager管理消息的收发,完成会话管理等功能。
EMContactManager负责好友的添加删除,黑名单的管理。
EMGroupManager负责群组的管理,创建,删除群组,管理群组成员等功能。
EMChatroomManager负责聊天室的管理。
EMClient是SDK的入口,主要完成登录,退出,连接管理等功能。也是获取其他模块的入口。
EMChatManager管理消息的收发,完成会话管理等功能。
EMContactManager负责好友的添加删除,黑名单的管理。
EMGroupManager负责群组的管理,创建,删除群组,管理群组成员等功能。
EMChatroomManager负责聊天室的管理。
// 带语音的接口 #import "EMSDKFull.h" // 不带语音的接口 #import "EMSDK.h"
EMOptions(SDK的设置选项)
// /* * 日志输出级别 */ typedef enum { EMLogLevelDebug = 0, //输出所有日志 EMLogLevelWarning, //输出警告及错误 EMLogLevelError //只输出错误 } EMLogLevel; /* * app唯一标识符 */ @property (nonatomic, strong, readonly) NSString *appkey; /* * 控制台是否输出log, 默认为NO */ @property (nonatomic, assign) BOOL enableConsoleLog; /* * 日志输出级别, 默认为EMLogLevelDebug */ @property (nonatomic, assign) EMLogLevel logLevel; /* * 是否使用https, 默认为YES */ @property (nonatomic, assign) BOOL usingHttps; /* * 是否使用开发环境, 默认为NO * 只能在[EMClient initializeSDKWithOptions:]时设置,不能在程序运行过程中动态修改 */ @property (nonatomic, assign) BOOL isSandboxMode; /* * 是否自动登录, 默认为YES * 设置的值会保存到本地。初始化EMOptions时,首先获取本地保存的值 */ @property (nonatomic, assign) BOOL isAutoLogin; /* * 离开群组时是否删除该群所有消息, 默认为YES */ @property (nonatomic, assign) BOOL isDeleteMessagesWhenExitGroup; /* * 离开聊天室时是否删除所有消息, 默认为YES */ @property (nonatomic, assign) BOOL isDeleteMessagesWhenExitChatRoom; /* * 是否允许聊天室Owner离开, 默认为YES */ @property (nonatomic, assign) BOOL isChatroomOwnerLeaveAllowed; /* * 用户自动同意群邀请, 默认为YES */ @property (nonatomic, assign) BOOL isAutoAcceptGroupInvitation; /* * 自动同意好友申请, 默认为NO */ @property (nonatomic, assign) BOOL f24c isAutoAcceptFriendInvitation; /* * 是否发送消息送达回执, 默认为NO,如果设置为YES,SDK收到单聊消息时会自动发送送达回执 */ @property (nonatomic, assign) BOOL enableDeliveryAck; /* * iOS特有属性,推送证书的名称 * 只能在[EMClient initializeSDKWithOptions:]时设置,不能在程序运行过程中动态修改 */ @property (nonatomic, strong) NSString *apnsCertName; /* * 获取实例 * @param aAppkey App的appkey * @result SDK设置项实例 */ + (instancetype)optionsWithAppkey:(NSString *)aAppkey;
EMClient(客户端)
{ EMPushOptions *_pushOptions; } /* * SDK版本号 */ @property (nonatomic, strong, readonly) NSString *version; /* * 当前登录账号 */ @property (nonatomic, strong, readonly) NSString *currentUsername; /* * SDK属性 */ @property (nonatomic, strong, readonly) EMOptions *options; /* * 推送设置 */ @property (nonatomic, strong, readonly) EMPushOptions *pushOptions; /* * 聊天模块 */ @property (nonatomic, strong, readonly) id<IEMChatManager> chatManager; /* * 好友模块 */ @property (nonatomic, strong, readonly) id<IEMContactManager> contactManager; /* * 群组模块 */ @property (nonatomic, strong, readonly) id<IEMGroupManager> groupManager; /* * 聊天室模块 */ @property (nonatomic, strong, readonly) id<IEMChatroomManager> roomManager; /* * SDK是否自动登录上次登录的账号 */ @property (nonatomic, readonly) BOOL isAutoLogin; /* * 用户是否已登录 */ @property (nonatomic, readonly) BOOL isLoggedIn; /* * 是否连上聊天服务器 */ @property (nonatomic, readonly) BOOL isConnected; /* * 获取SDK实例 */ + (instancetype)sharedClient;
1. Delegate
/* * 添加回调代理 * @param aDelegate 要添加的代理 * @param aQueue 执行代理方法的队列 */ - (void)addDelegate:(id<EMClientDelegate>)aDelegate delegateQueue:(dispatch_queue_t)aQueue; /* * 移除回调代理 * @param aDelegate 要移除的代理 */ - (void)removeDelegate:(id)aDelegate;
2. Initialize SDKDelegate
/* * 初始化sdk * @param aOptions SDK配置项 * @result 错误信息 */ - (EMError *)initializeSDKWithOptions:(EMOptions *)aOptions; #pragma mark - Register /* * 注册用户 * 同步方法,会阻塞当前线程. 不推荐使用,建议后台通过REST注册 * @param aUsername 用户名 * @param aPassword 密码 * @result 错误信息 */ - (EMError *)registerWithUsername:(NSString *)aUsername password:(NSString *)aPassword;
3. Login Delegate
// /* * 登录 * 同步方法,会阻塞当前线程 * @param aUsername 用户名 * @param aPassword 密码 * @result 错误信息 */ - (EMError *)loginWithUsername:(NSString *)aUsername password:(NSString *)aPassword;
4. Logout Delegate
// /* * 退出 * 同步方法,会阻塞当前线程 * @param bIsUnbindDeviceToken 是否解除device token的绑定,解除绑定后设备不会再收到消息推送 * 如果传入YES, 解除绑定失败,将返回error * @result 错误信息 */ - (EMError *)logout:(BOOL)bIsUnbindDeviceToken;
5. Apns
// /* * 绑定device token * 同步方法,会阻塞当前线程 * @param aDeviceToken 要绑定的token * @result 错误信息 */ - (EMError *)bindDeviceToken:(NSData *)aDeviceToken; /* * 从服务器获取推送属性 * 同步方法,会阻塞当前线程 */ - (EMPushOptions *)getPushOptionsFromServerWithError:(EMError **)pError; /* * 设置推送消息显示的昵称 * 同步方法,会阻塞当前线程 * @param aNickname 要设置的昵称 * @result 错误信息 */ - (EMError *)setApnsNickname:(NSString *)aNickname; /* * 更新推送设置到服务器 * 同步方法,会阻塞当前线程 * @result 错误信息 */ - (EMError *)updatePushOptionsToServer;
6. iOS
/* * iOS专用,数据迁移到SDK3.0 * 同步方法,会阻塞当前线程 * 升级到SDK3.0版本需要调用该方法,开发者需要等该方法执行完后再进行数据库相关操作 * @result 是否迁移成功 */ - (BOOL)dataMigrationTo3; /* * iOS专用,程序进入后台时,需要调用此方法断开连接 * @param aApplication UIApplication */ - (void)applicationDidEnterBackground:(id)aApplication; /* * iOS专用,程序进入前台时,需要调用此方法进行重连 */ - (void)applicationWillEnterForeground:(id)aApplication;
EMChatroom(聊天室)
/* * 聊天室ID */ @property (nonatomic, copy, readonly) NSString *chatroomId; /* * 聊天室的主题 */ @property (nonatomic, copy, readonly) NSString *subject; /* * 聊天室的描述 */ @property (nonatomic, copy, readonly) NSString *description; /* * 聊天室的最大人数 */ @property (nonatomic, readonly) NSInteger maxOccupantsCount; /* * 初始化聊天室实例 * 请使用[+chatroomWithId:]方法 * @result nil */ - (instancetype)init __deprecated_msg("Use +chatroomWithId:"); /* * 获取聊天室实例 * @param aChatroomId 聊天室ID * @result 聊天室实例 */ + (instancetype)chatroomWithId:(NSString *)aChatroomId;
EMConversation(聊天会话)
// /* * 会话类型 */ typedef enum{ EMConversationTypeChat = 0, //单聊会话 EMConversationTypeGroupChat, //群聊会话 EMConversationTypeChatRoom, //聊天室会话 }EMConversationType; /* * 会话唯一标识 */ @property (nonatomic, copy, readonly) NSString *conversationId; /* * 会话类型 */ @property (nonatomic, assign, readonly) EMConversationType type; /* * 会话未读消息数量 */ @property (nonatomic, assign, readonly) int unreadMessagesCount; /* * 会话扩展属性 */ @property (nonatomic, strong) NSDictionary *ext; /* * 会话最新一条消息 */ @property (nonatomic, strong, readonly) EMMessage *latestMessage; /* * 插入一条消息,消息的conversationId应该和会话的conversationId一致,消息会被插入DB,并且更新会话的latestMessage等属性 * @param aMessage 消息实例 * @result 是否成功 */ - (BOOL)insertMessage:(EMMessage *)aMessage; /* * 删除一条消息 * @param aMessageId 要删除消失的ID * @result 是否成功 */ - (BOOL)deleteMessageWithId:(NSString *)aMessageId; /* * 删除该会话所有消息 * @result 是否成功 */ - (BOOL)deleteAllMessages; /* * 更新一条消息,不能更新消息ID,消息更新后,会话的latestMessage等属性进行相应更新 * @param aMessage 要更新的消息 * @result 是否成功 */ - (BOOL)updateMessage:(EMMessage *)aMessage; /* * 将消息设置为已读 * @param aMessageId 要设置消息的ID * @result 是否成功 */ - (BOOL)markMessageAsReadWithId:(NSString *)aMessageId; /* * 将所有未读消息设置为已读 */ - (BOOL)markAllMessagesAsRead; /* * 更新会话扩展属性到DB * @result 是否成功 */ - (BOOL)updateConversationExtToDB; /* * 获取指定ID的消息 * @param aMessageId 消息ID * @result 消息 */ - (EMMessage *)loadMessageWithId:(NSString *)aMessageId; /* * 从数据库获取指定数量的消息,取到的消息按时间排序,并且不包含参考的消息,如果参考消息的ID为空,则从最新消息向前取 * @param aMessageId 参考消息的ID * @param aLimit 获取的条数 * @result 消息列表<EMMessage> */ - (NSArray *)loadMoreMessagesFromId:(NSString *)aMessageId limit:(int)aLimit; /* * 从数据库获取指定类型的消息,取到的消息按时间排序,如果参考的时间戳为负数,则从最新消息向前取,如果aLimit是负数,则获取所有符合条件的消息 * @param aType 消息类型 * @param aTimestamp 参考时间戳 * @param aLimit 获取的条数 * @result 消息列表<EMMessage> */ - (NSArray *)loadMoreMessagesWithType:(EMMessageBodyType)aType before:(long long)aTimestamp limit:(int)aLimit; /* * 从数据库获取包含指定内容的消息,取到的消息按时间排序,如果参考的时间戳为负数,则从最新消息向前取,如果aLimit是负数,则获取所有符合条件的消息 * @param aKeywords 搜索关键字 * @param aTimestamp 参考时间戳 * @param aLimit 获取的条数 * @result 消息列表<EMMessage> */ - (NSArray *)loadMoreMessagesContain:(NSString*)aKeywords before:(long long)aTimestamp limit:(int)aLimit; /* * 收到的对方发送的最后一条消息 * @result 消息实例 */ - (EMMessage *)latestMessageFromOthers;
EMCursorResult(分段结果)
/* * 结果列表<id> */ @property (nonatomic, strong) NSArray *list; /* * 获取下一段结果的游标 */ @property (nonatomic, copy) NSString *cursor; /* * 创建实例 * @param aList 结果列表<id> * @param aCusror 获取下一段结果的游标 * @result 分段结果的实例 */ + (instancetype)cursorResultWithList:(NSArray *)aList andCursor:(NSString *)aCusror;
EMError(SDK定义的错误)
/* * 错误码 */ @property (nonatomic) EMErrorCode code; /* * 错误描述 */ @property (nonatomic, strong) NSString *errorDescription; /* * 初始化错误实例 * @param aDescription 错误描述 * @param aCode 错误码 * @result 错误实例 */ - (instancetype)initWithDescription:(NSString *)aDescription code:(EMErrorCode)aCode; /* * 创建错误实例 * @param aDescription 错误描述 * @param aCode 错误码 * @result 对象实例 */ + (instancetype)errorWithDescription:(NSString *)aDescription code:(EMErrorCode)aCode;
EMGroup(群组)
// /* * 群组ID */ @property (nonatomic, copy, readonly) NSString *groupId; /* * 群组的主题,需要获取群详情 */ @property (nonatomic, copy, readonly) NSString *subject; /* * 群组的描述,需要获取群详情 */ @property (nonatomic, copy, readonly) NSString *description; /* * 群组当前的成员数量,需要获取群详情 */ @property (nonatomic, readonly) NSInteger occupantsCount; /* * 群组属性配置,需要获取群详情 */ @property (nonatomic, strong, readonly) EMGroupOptions *setting; /* * 群组的所有者,拥有群的最高权限,需要获取群详情 * 群组的所有者只有一人 */ @property (nonatomic, copy, readonly) NSString *owner; /* * 群组的成员列表,需要获取群详情 */ @property (nonatomic, copy, readonly) NSArray *members; /* * 群组的黑名单,需要先调用获取群黑名单方法 * 需要owner权限才能查看,非owner返回nil */ @property (nonatomic, strong, readonly) NSArray *bans; /* * 群组的所有成员(包含owner和members) */ @property (nonatomic, strong, readonly) NSArray *occupants; /* * 此群组是否接收消息推送通知 */ @property (nonatomic, readonly) BOOL isPushNotificationEnabled; /* * 此群是否为公开群,需要获取群详情 */ @property (nonatomic, readonly) BOOL isPublic; /* * 是否屏蔽群消息 */ @property (nonatomic, readonly) BOOL isBlocked; /* * 初始化群组实例 * 请使用+groupWithId:方法 * @result nil */ - (instancetype)init __deprecated_msg("Use +groupWithId:"); /* * 获取群组实例,如果不存在则创建 * @param aGroupId 群组ID * @result 群组实例 */ + (instancetype)groupWithId:(NSString *)aGroupId;
相关文章推荐
- debian8 install instruction
- 第八周学习进度条
- SWUST OJ 1693 冰壶运动
- CodeForces 628C
- 机器学习基础(五十四)—— 支持向量机(SVM)
- 易语言学习第七课
- 好难的spring错误
- HDOJ(HDU) 1977 Consecutive sum II(推导、、)
- 归并排序
- 站立会议04
- HDOJ(HDU) 1977 Consecutive sum II(推导、、)
- 《校园封神榜》典型用户和用户场景
- 构建之法阅读笔记03
- 产品需求分析
- 团队项目:二次开发
- 典型用户模版和场景
- C函数原理
- 通过GridView实现一个自定义的一个日历控件
- LeetCode|Count Primes
- 解决 java.lang.IllegalThreadStateException: Thread already started. 错误