android 环信消息红点,环信3.0获取会话消息列表
環信2.0有一個獲取消息列表的方法
/*!
@method
@brief 從數據庫中加載消息
@discussion
@result 加載的消息列表
*/
- (NSArray *)loadAllMessages;
而3.0中并沒有這個方法,而是將兩個賬戶的會話消息合并在一起,首先獲取兩個賬戶在本地的所有會話消息
//發送者的所有會話消息
EMConversation *conversation = [[EMClient sharedClient].chatManager getConversation:self.userName type:EMConversationTypeChat createIfNotExist:YES];
//從數據庫獲取指定數量消息
NSArray *array = [conversation loadMoreMessagesFromId:nil limit:100 direction:EMMessageSearchDirectionUp];
[self.dataArray addObjectsFromArray:array];
//接收者的所有會話消息(登錄賬戶的所有會話消息)
EMConversation *conversation1 = [[EMClient sharedClient].chatManager getConversation:[[EMClient sharedClient] currentUsername] type:EMConversationTypeChat createIfNotExist:YES];
NSArray *array1 = [conversation1 loadMoreMessagesFromId:nil limit:100 direction:EMMessageSearchDirectionUp];
[self.dataArray addObjectsFromArray:array1];
之后循環遍歷數組,獲取屬于雙方的會話消息
NSMutableArray *messageArray = [NSMutableArray array];
//循環遍歷數組,從中獲取發送與接收是雙方的會話消息
for (EMMessage *message in self.dataArray) {
if (([message.from isEqualToString:self.userName]&&[message.to isEqualToString:[[EMClient sharedClient] currentUsername]]) || ([message.from isEqualToString:[[EMClient sharedClient] currentUsername]]&&[message.to isEqualToString:self.userName]) ) {
[messageArray addObject:message];
}
}
接下來按照時間把獲得的消息進來排序
//根據客戶端發送/收到此消息的時間按時間進行排序
NSArray *sortArray = [messageArray sortedArrayUsingComparator:^NSComparisonResult(EMMessage * obj1, EMMessage * obj2) {
if(obj1.localTime < obj2.localTime){
return (NSComparisonResult)NSOrderedAscending;
}else{
return (NSComparisonResult)NSOrderedDescending;
}
}];
這樣就獲得了單獨的會話列表了。
總結
以上是生活随笔為你收集整理的android 环信消息红点,环信3.0获取会话消息列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 调整cpu频率,[IMX
- 下一篇: html中源文件回车效果无效,网页制作使