环信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获取会话消息列表相关推荐

  1. php监听mq消息,客户端监听服务端获取rabbitmq消息队列,rabbitmq有消息的时候客户端刷新页面才能获取到消息,监听没起到作用,请求各位大神指点迷津...

    header("Content-Type:text/html;charset=utf-8"); use Workerman\Worker; require_once __DIR__ ...

  2. 环信即时通讯云iOS版V2.0.9.1服务评测

    集成测试 评测环境 2G/3G/WiFi网络下: 测评环境 MAC OS(10.9.2)+ XCode(5.1) + iPhone 测试对象 环信即时通讯云 IOS SDK Version 2.0.9 ...

  3. mob sdk vue 短信验证_基于环信SDK的IM即时通讯填坑之路(vue)

    1.这里如果注册异常的type==17则代表已注册,那就直接去登录 2.这里id是依据是否在应用内已登录(自己应用,非环信), 如果是未登录(游客状态)则随机一个 Math.ceil(Math.ran ...

  4. 环信集成 2---基于环信Demo3.0,实现单聊功能

    这几天在做环信,所以把环信相关的东西拿过来,做个系统点的东西 注意: 这里Demo集成的是带有实时语音功能的(libEaseMobClientSDK.a). 环信库是直接拖拽EaseMobSDK文件夹 ...

  5. Android 短信模块分析(四) MMS之短信的发送与接收

     MMS之短信的发送与接收分析: 一.信息发送: com.android.mms.data.WorkingMessage.java 类 send()函数: public void send() { . ...

  6. android 短信位置,浅析Android手机卫士之手机实现短信指令获取位置

    推荐阅读: 获取位置 新建一个service的包 新建一个GPSService类继承系统的Service类 清单文件中注册一下 重写onCreate()方法,服务创建的时候回调 重写onDestroy ...

  7. Android开发学习之电话、短信、联系人

    作为一部手机,最重要的功能当属电话.短信.联系人了,所以今天想和大家分享的是关于Android电话.短信.联系人这块的API接口. 1.通话记录的获取 List<TelePhoneRecord& ...

  8. android app 短信接收,Android创建简单发送和接收短信应用

    本文实例为大家分享了Android创建发送和接收短信应用的简单实现过程,供大家参考,具体内容如下 一.接收短信 项目的结构如下:一个简单的接收和发送短信的功能 1.定义一个接收短信的广播:当手机接收到 ...

  9. Android Mms短信的发送流程,短信发送源码解析

    发送前的校验 从短信的点击按钮开始着手: // packages/apps/Mms/src/com/android/mms/ui/ComposeMessageActivity.java@Overrid ...

最新文章

  1. 不用任何第三方,写一个RTMP直播推流器
  2. 什么样的NLP库,可以支持53种语言?
  3. Python 中多线程共享全局变量的问题
  4. 阿里云yum源安装SVN失败的问题
  5. 【VIJOS - P1037】搭建双塔(dp)
  6. Win10提示不是有效的字体文件怎么解决
  7. 算法-求两个有序数组两两相加的值最小的K个数
  8. python IDLE颜色设置
  9. 信息系统综合知识六 标准化与知识产权
  10. 努比亚 Z17s (Nubia NX595J) 解锁BootLoader 并刷入recovery ROOT
  11. linux卸载kodi,如何在Ubuntu 18.04上安装Kodi
  12. 用js如何实现获取验证码
  13. 关于nmap和traceroute在虚拟机里使用的问题
  14. 《算法竞赛进阶指南》 荷马史诗
  15. web指纹识别技术研究与优化实现
  16. 【Axure教程】鼠标右键显示菜单
  17. 微软MSDN Web cast系列视频教程集锦
  18. 瀑布模型(waterfall model)需求明确+严格顺序执行
  19. 我的申请已经通过审核,你想成为阿里云 MVP 吗?
  20. php动态创建变量名,PHP中动态创建变量名(可变变量)

热门文章

  1. nginx php mysql 部署_Linux+Nginx+Mysql+Php运维部署
  2. 活跃用户数怎么计算_留存率计算
  3. ML二:NNSearch数据结构--二叉树
  4. python3:语法变动 及新特性
  5. 物联网赚钱三大步骤浅析
  6. ipconfig /flushdns 解释
  7. 20个最强的基于浏览器的在线代码编辑器 - OPEN资讯
  8. Packstack安装havana后,计算节点连接DB错误解决
  9. 数据库连接池工作原理
  10. 在CentOS Linux上安装oracle11g之二 安装oracle11g