即时通信:环信3.0以后的版本使用
本文主要介绍的是环信s d k的使用,及注释分解及如何使用。
1. 集成方面:
1> 准备工作,官方文档还是要看一下,下载官方demo先把相应的静态库文件倒入工程添加响应的依赖裤编译至不报错 。参考链接:http://docs.easemob.com/im/300iosclientintegration/140iosquickstart。如果集成依然报错参考这个视频:http://www.imgeek.org/video/:如果依然无法解决,百度或发信我,我也在总结报错原因及如何解决,我和大家一样也在学习。
2.>编译正常,恭喜集成成功。集成成功后揭下来就是ui部分。可以把整个ChatUI部分倒入工程,注意重复的第三方库,小编用的一些第三方库与环信重复,只能一个个删除。其实很快的,工程上用的东西都可以快速查到,上面链接有这部分视频讲解。好了,接下来就看下如何在工程上具体使用。
2.介绍:
1>首先要明白:EMClient: 是 SDK 的入口,主要完成登录、退出、连接管理等功能。也是获取其他模块的入口。EMChatManager: 管理消息的收发,完成会话管理等功能。EMContactManager: 负责好友的添加删除,黑名单的管理。EMGroupManager: 负责群组的管理,创建、删除群组,管理群组成员等功能。EMChatroomManager: 负责聊天室的管理。都在HyphenateFullSDK文件下面。
2>文件说明及功能代码的文件位置
1.是定义的洪,主要是一些简写方式的洪。2是一些初始化,注意一些细节及功能调用,直接套用里面的代码就行,对于ContactListViewController/ConversationListController/ChatViewController 这三个类做相应修改根据自己需要,小编一般都只会修改ContactListViewController涉及到的方法,不涉及到好友添加/删除。对于这三个类在赋值时确保已被初始化。其实很简单,比这着葫芦画瓢完全可以实现的,这个文件也可以不要,把相关代码写到主控制器中,官方技术人员也提到过。3是聊天室,4是数据存储,5可以说是头文件。
3.使用
1.推送
首先我们还是要先注册授权推送,在工程里面一般都会设计到app推送,我一般使用激光或者友盟。授权一次即可。对于注册Tocken,只需把环信及激光/友盟 写在一个方法里就可以的。小编曾经没注意那么多,掉进坑里,离线发送一条消息,环信收到俩次一样的推送消息,查了很多资料也很郁闷,最后把环信设计到的推送代码直接删除,都写在了appdelegate文件下。问题解决。原因就是多次授权推送。
推送设置:
EMPushOptions *options = [[EMClient sharedClient] pushOptions];
options.displayStyle = EMPushDisplayStyleSimpleBanner;//样式设置
[[EMClient sharedClient] updatePushOptionsToServer];
2. 用户头像与昵称设计管理
也就是对消息进行属性扩展
+(NSMutableDictionary*)getMyMsgExt:(NSDictionary *)msgExt{
UserCacheInfo *user = [UserCacheManager myInfo];
NSMutableDictionary *extDic = [NSMutableDictionary dictionaryWithDictionary:msgExt];
[extDic setValue:user.userId forKey:kChatUserId];
[extDic setValue:user.avatarUrl forKey:kChatUserPic];
[extDic setValue:user.nickName forKey:kChatUserNick];
return extDic;
}
EMMessage *message;
message.ext = [UserCacheManager getMyMsgExt:messageExt];在发送消息前扩展,包涵用户ID 用户头像 用户昵称。如果还需要别的属性可以进行追加比如加一些自定义的标示。
3.对于整个环信来说,核心功能也就这些。发消息,推送设置,用户的增删及用户的头像及昵称。注意Core Data文件下的存储文件,里面都有说明。如有问题可以发信小编。 我也很想一句代码集成环信。但终没能实现,有些分散。并没有总结出更好的方式出来。网速较慢,时间有限。积累问题逐步更新。demo 地址:https://github.com/mengmakies/ChatDemo-UI3.00-Simple。 注意:由于Git不支持上传大于100MB的文件,所以项目源码中不包含 HyphenateFullSDK 和HyphenateSDK动态库,下载地址https://pan.baidu.com/s/1c1RsUrA,解压后后将HyphenateFullSDK和HyphenateSDK文件夹拷贝到目录【/ChatDemo-UI3.0-Sample/ChatDemo-UI3.0/ChatSDK/】下才能正常运行。