环信3.0集成中遇到的那些“坑”
来源:互联网 发布:网络推广的主要方法 编辑:程序博客网 时间:2024/05/26 12:04
由于公司项目需要,把在前辈基础上集成的2.x的环信升级到3.0版本,期间碰到了不少的“神坑”,记录下来以供以后需要时查看。
由于是在2.x的基础上重新集成的,所以注册账号、推送证书的配置、登录等都没有太大改动,就先拣自己印象最深,解决花费时间最长的几个bug来记录吧,以后想起再随时添加。
1,群聊创建群组成功后,再次请求群组时群组成员会少于邀请的成员数:这个“坑”其实并不难,只是3.x文档中的某个属性我没有注意到,最后我是询问了环信客服才解决的,在此,感谢客服的耐心指点,不厌其烦的帮助。其实就是这个属性:
@property (nonatomic,assign)BOOL isAutoAcceptGroupInvitation;在EMOptions里面,这个属性的意义在于用户收到邀请后,如果用户处于登录状态,环信就会把用户加到群组里面,而如果用户不处于登录状态,等到用户登录后,环信还是会把用户加入到群组里的。但是如果设置为NO之后,用户登录后,环信也不会把该用户加入到群组里面了。它本身默认是设置为YES的,但是环信的DEMO里面却把它设置为了NO,我是继承自环信的聊天页面做的,导致我邀请的群成员不能自动加入到群组。所以在集成第三方时,如果用到了第三方的DEMO,还是很有必要看一下第三方DEMO里面一些有用的属性和方法的,尤其要注意和官方文档设置不相同的属性和方法。
2,环信2.x里面有个
- (void)didUnreadMessagesCountChanged;方法,每当用户的消息数量有变化后会自动调用此方法来进行未读数量的统计,从而让开发者在适当的位置显示未读消息数。3.0里这个方法被废弃掉了,开发者只能通过EMChatManagerDelegate里面的
- (void)didReceiveMessages:(NSArray *)aMessages;方法来获取所有的消息变化,这样子也没有太大问题。最“坑”的就是2.x的未读数是显示在根控制器的tabBarItem上的,而3.0里面不能直接在appdelegate里面来获取到用户是否已经读取过消息(起码我是没有获取到),需要在聊天界面的代理方法里面才会获取到该消息是否已读,这样子就造成我必须要在聊天界面重新获取一次消息并计算未读数目。进入聊天界面后系统根控制器的tabBarItem是被隐藏掉的,因此读完消息以后,tabBar上的未读数一直不会消失,为了这个问题我整整迷惑了两天,最终才发现是根控制器的问题(真是气死我了)。
3,2.x版本里面的代理只需要添加chatmanager就可以了,3.0版本里面单聊和群聊的代理是不同的,需要分别添加两个代理:
[[EMClientsharedClient]addDelegate:selfdelegateQueue:nil];
[[EMClientsharedClient].chatManageraddDelegate:selfdelegateQueue:nil];
[[EMClientsharedClient].groupManageraddDelegate:selfdelegateQueue:nil];
如果忘记加代理的话,某些回调可能不会调用的,所以当有回调方法不执行时,先去查看一下是否代理忘记添加了。
- 环信3.0集成中遇到的那些“坑”
- 集成云信遇到的那些问题
- 记录环信EaseUI集成的那些坑
- 集成环信的EaseUI 中遇到的一些坑(3.x)
- 集成环信遇到的问题
- 环信EaseUI集成遇到的问题
- 集成环信遇到的问题
- 那些年,关于android集成微信的坑
- 普通JAVA工程集成Spring遇到的那些坑
- 集成谷歌地图遇到的那些坑及解决办法
- 那些年,我用Thinkphp5集成mongoDB遇到的坑
- 微信公众号H5支付遇到的那些坑
- ios集成环信遇到的相关问题整理
- 网易云信iOSSDK集成遇到的坑
- Android集成微信支付遇到的坑
- ios集成网易云信IM功能遇到的坑
- spring 学习中 遇到的那些坑
- Androd开发中遇到的那些坑
- 数据结构——9 双向链表建立、输出和测长
- HTML5小游戏之五子棋续篇
- android中TextView多行文本滚动的实现及单行走马灯实现
- updatePanel控件
- 字符串处理
- 环信3.0集成中遇到的那些“坑”
- 一步一步做Android Studio下JNI开发
- zookeeper大量连接断开原因排查Unable to read additional data from client sessionid
- 国家授时中心:2015年6月30日全世界钟表将拨慢一秒钟
- C++ 引用的作用和用法
- 利用Python PIL、cPickle读取和保存图像数据库
- 【C语言】非常有用的C语言宏定义
- oracle 递归层次查询
- CSS快速学习2:选择符权重和字体类属性