demo bug: 好友删除, 对应的会话不被删除。
使用SDK后,在沙盒中生成的存储数据的文件夹,不同步到iCloud;
自动登录流程:
(A) EMErrorServerTimeout || EMErrorServerNotReachable || EMErrorNetworkNotConnected || EMErrorServerMaxCountExceeded 表示sdk中自动登录操作还未终止,sdk将在下次网络变化时尝试重新自动登录,如果你不想继续进行自动登录,调用[logoffWithUnbindDeviceToken: error:]终止自动登录; (B)EMErrorServerTooManyOperations 表示已经在登录中,你可以不进行任何操作; (C)其余类型的error,表示sdk内部已经终止了自动登录操作。
接收离线消息的回调接口有所调整,现在的流程是这样的:
环信小助手功能,可自动回复,在demo中有体现。
IChatManagerRobot
add理由: 新功能
IChatManagerRobot
add理由: 新功能
EMRobot
add理由: 新功能
ICallManagerCall
add理由: 显示视频实时通话的各种参数
/*!
@method
@brief 获取实时视频的延迟ms,实时变化
*/
- (int)getVideoTimedelay;
/*!
@method
@brief 获取实时视频的帧率,实时变化
*/
- (int)getVideoFramerate;
/*!
@method
@brief 获取实时视频时,每100包丢失的包数,实时变化
*/
- (int)getVideoLostcnt;
/*!
@method
@brief 获取实时视频的宽度,固定值,不会实时变化
*/
- (int)getVideoWidth;
/*!
@method
@brief 获取实时视频的高度,固定值,不会实时变化
*/
- (int)getVideoHeight;
EMChatManagerChatDelegate
/*!
@method
@brief 离线透传消息接收完成的回调
@discussion
@param offlineCmdMessages 接收到的离线透传消息列表
@result
*/
- (void)didFinishedReceiveOfflineCmdMessages:(NSArray *)offlineCmdMessages EM_DEPRECATED_IOS(2_1_5,2_1_8,"使用didFinishedReceiveOfflineCmdMessages标识离线消息结束,离线CMD全部通过didReceiveOfflineCmdMessages返回");
/*!
@method
@brief 离线非透传消息接收完成的回调
@discussion
@param offlineMessages 接收到的离线列表
@result
*/
- (void)didFinishedReceiveOfflineMessages:(NSArray *)offlineMessages EM_DEPRECATED_IOS(2_1_5,2_1_8,"使用didFinishedReceiveOfflineMessages标识离线消息结束,离线消息全部通过didReceiveOfflineMessages返回");
delete理由: SDK只支持默认同意建群邀请
/*!
@method
@brief 接受并加入群组
@param groupId 所接受的群组ID
@param pError 错误信息
@result 返回所加入的群组对象
*/
- (EMGroup *)acceptInvitationFromGroup:(NSString *)groupId
error:(EMError **)pError EM_DEPRECATED_IOS(2_0_3, 2_1_8, "Delete");
/*!
@method
@brief 异步方法, 接受并加入群组
@param groupId 所接受的群组ID
@discussion
函数执行后, didAcceptInvitationFromGroup:error:回调会被触发
*/
- (void)asyncAcceptInvitationFromGroup:(NSString *)groupId EM_DEPRECATED_IOS(2_0_3, 2_1_8, "Delete");
/*!
@method
@brief 异步方法, 接受并加入群组
@param groupId 所接受的群组ID
@param completion 消息完成后的回调
@param aQueue 回调执行时的线程
*/
- (void)asyncAcceptInvitationFromGroup:(NSString *)groupId
completion:(void (^)(EMGroup *group,
EMError *error))completion
onQueue:(dispatch_queue_t)aQueue EM_DEPRECATED_IOS(2_0_3, 2_1_8, "Delete");
/*!
@method
@brief 拒绝一个加入群组的邀请
@param groupId 被拒绝的群组ID
@param username 被拒绝的人
@param reason 拒绝理由
*/
- (void)rejectInvitationForGroup:(NSString *)groupId
toInviter:(NSString *)username
reason:(NSString *)reason EM_DEPRECATED_IOS(2_0_3, 2_1_8, "Delete");
delete理由: SDK不支持转发消息
/*!
@method
@brief 将某一条消息转发给另一个聊天用户
@discussion
@param message 需要转发的消息对象
@param ext 转发时需要修改的ext(原有需要转发的message的ext不会进行转发)
@param username 需要转发给聊天对象的username
@param isGroup 是否是转发到一个群组
@param progress 发送多媒体信息时的progress回调对象
@param pError 错误信息
@result 发送的消息对象
*/
- (EMMessage *)forwardMessage:(EMMessage *)message
ext:(NSDictionary *)ext
to:(NSString *)username
isGroup:(BOOL)isGroup
progress:(id)progress
error:(EMError **)pError EM_DEPRECATED_IOS(2_0_3, 2_1_8, "Delete");
/*!
@method
@brief 异步方法, 将某一条消息转发给另一个聊天用户
@discussion 待发送的消息对象和发送后的消息对象是同一个对象, 在发送过程中对象属性可能会被更改. 在发送过程中, EMChatManagerChatDelegate中的willSendMessage:error:和didSendMessage:error:这两个回调会被触发
@param message 需要转发的消息对象
@param ext 转发时需要修改的ext(原有需要转发的message的ext不会进行转发)
@param username 需要转发给聊天对象的username
@param isGroup 是否是转发到一个群组
@param progress 发送多媒体信息时的progress回调对象
@result 发送的消息对象(因为是异步方法, 不能作为发送完成或发送成功失败与否的判断)
*/
- (EMMessage *)asyncForwardMessage:(EMMessage *)message
ext:(NSDictionary *)ext
to:(NSString *)username
isGroup:(BOOL)isGroup
progress:(id)progress EM_DEPRECATED_IOS(2_0_3, 2_1_8, "Delete");
/*!
@method
@brief 异步方法, 将某一条消息转发给另一个聊天用户
@discussion 待发送的消息对象和发送后的消息对象是同一个对象, 在发送过程中对象属性可能会被更改.
@param message 需要转发的消息对象
@param ext 转发时需要修改的ext(原有需要转发的message的ext不会进行转发)
@param username 需要转发给聊天对象的username
@param isGroup 是否是转发到一个群组
@param progress 发送多媒体信息时的progress回调对象
@param prepare 将要发送消息前的回调block
@param aPrepareQueue 回调block时的线程
@param completion 发送消息完成后的回调
@param aCompletionQueue 回调block时的线程
@result 发送的消息对象(因为是异步方法, 不能作为发送完成或发送成功失败与否的判断)
*/
- (EMMessage *)asyncForwardMessage:(EMMessage *)message
ext:(NSDictionary *)ext
to:(NSString *)username
isGroup:(BOOL)isGroup
progress:(id)progress
prepare:(void (^)(EMMessage *message,
EMError *error))prepare
onQueue:(dispatch_queue_t)aPrepareQueue
completion:(void (^)(EMMessage *message,
EMError *error))completion
onQueue:(dispatch_queue_t)aCompletionQueue EM_DEPRECATED_IOS(2_0_3, 2_1_8, "Delete");
/*!
@method
@brief 将某一条消息转发给另一个聊天用户
@discussion
@param message 需要转发的消息对象
@param ext 转发时需要修改的ext(原有需要转发的message的ext不会进行转发)
@param username 需要转发给聊天对象的username
@param type 转发对象的类型
@param progress 发送多媒体信息时的progress回调对象
@param pError 错误信息
@result 发送的消息对象
*/
- (EMMessage *)forwardMessage:(EMMessage *)message
ext:(NSDictionary *)ext
to:(NSString *)username
messageType:(EMMessageType)type
progress:(id)progress
error:(EMError **)pError EM_DEPRECATED_IOS(2_0_3, 2_1_8, "Delete");
/*!
@method
@brief 异步方法, 将某一条消息转发给另一个聊天用户
@discussion 待发送的消息对象和发送后的消息对象是同一个对象, 在发送过程中对象属性可能会被更改. 在发送过程中, EMChatManagerChatDelegate中的willSendMessage:error:和didSendMessage:error:这两个回调会被触发
@param message 需要转发的消息对象
@param ext 转发时需要修改的ext(原有需要转发的message的ext不会进行转发)
@param username 需要转发给聊天对象的username
@param type 转发对象的类型
@param progress 发送多媒体信息时的progress回调对象
@result 发送的消息对象(因为是异步方法, 不能作为发送完成或发送成功失败与否的判断)
*/
- (EMMessage *)asyncForwardMessage:(EMMessage *)message
ext:(NSDictionary *)ext
to:(NSString *)username
messageType:(EMMessageType)type
progress:(id)progress EM_DEPRECATED_IOS(2_0_3, 2_1_8, "Delete");
/*!
@method
@brief 异步方法, 将某一条消息转发给另一个聊天用户
@discussion 待发送的消息对象和发送后的消息对象是同一个对象, 在发送过程中对象属性可能会被更改.
@param message 需要转发的消息对象
@param ext 转发时需要修改的ext(原有需要转发的message的ext不会进行转发)
@param username 需要转发给聊天对象的username
@param type 转发对象的类型
@param progress 发送多媒体信息时的progress回调对象
@param prepare 将要发送消息前的回调block
@param aPrepareQueue 回调block时的线程
@param completion 发送消息完成后的回调
@param aCompletionQueue 回调block时的线程
@result 发送的消息对象(因为是异步方法, 不能作为发送完成或发送成功失败与否的判断)
*/
- (EMMessage *)asyncForwardMessage:(EMMessage *)message
ext:(NSDictionary *)ext
to:(NSString *)username
messageType:(EMMessageType)type
progress:(id)progress
prepare:(void (^)(EMMessage *message,
EMError *error))prepare
onQueue:(dispatch_queue_t)aPrepareQueue
completion:(void (^)(EMMessage *message,
EMError *error))completion
onQueue:(dispatch_queue_t)aCompletionQueue EM_DEPRECATED_IOS(2_0_3, 2_1_8, "Delete");