这里介绍集成环信SDK3.0自定义聊天页面,后面有练习项目地址
首先到环信官网下载环信SDK、由于后续会实现语音、视频,我这里使用的是带有语音的SDK

下载完成后把HyphenateFullSDK文件夹拉入项目:

在Embedded Binaries目录下点击加号添加Hyphenate.framework:

在AppDelegate.m导入环信库文件
#import <Hyphenate/Hyphenate.h>
编译通过。

在- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions 方法中注册环信

EMOptions *options = [EMOptions optionsWithAppkey:@"1156170310178775#emchattext"];//这里的key是自己在环信注册应用时环信给的appkey[[EMClient sharedClient] initializeSDKWithOptions:options];

在- (void)applicationDidEnterBackground:(UIApplication *)application 程序进入后台方法中调用环信方法

    [[EMClient sharedClient] applicationDidEnterBackground:application];

在- (void)applicationWillEnterForeground:(UIApplication *)application 程序即将从后台返回方法中调用环信方法

    [[EMClient sharedClient] applicationWillEnterForeground:application];

这样环信SDK集成工作已经做完,下面介绍实现聊天需要调用的实现方法:

1、登录、注册、退出方法

//登陆方法EMError *error = [[EMClient sharedClient] loginWithUsername:@"账号" password:@"密码"];if (!error) {NSLog(@"登录成功");[[EMClient sharedClient].options setIsAutoLogin:YES];//设置自动登录}else{NSLog(@"登录失败 : error = %@",error.errorDescription);}//注册方法
EMError *error = [[EMClient sharedClient] registerWithUsername:@"账号" password:@"密码"];if (error == nil) {NSLog(@"注册成功");}else{NSLog(@"注册失败 : error = %@",error.errorDescription);}
//退出
[[EMClient sharedClient] logout:YES completion:^(EMError *aError) {if (!aError.code) {}}];

2、创建聊天

EMConversation 聊天会话实例,发送获取消息。。。

下面介绍用到及调用的方法

- (void)viewDidLoad {[super viewDidLoad];_conversation = [[EMClient sharedClient].chatManager getConversation:@"会话ID传入对方环信Id即可" type:EMConversationTypeChat createIfNotExist:YES];//移除消息回调[[EMClient sharedClient].chatManager removeDelegate:self];//注册消息回调[[EMClient sharedClient].chatManager addDelegate:self delegateQueue:nil];// Do any additional setup after loading the view.
}[_conversation loadMessagesStartFromId:@"会话ID(同上)" count:20 searchDirection:EMMessageSearchDirectionUp completion:^(NSArray *aMessages, EMError *aError) {if (!aError) {NSLog(@"获取本地消息内容成功");}else{NSLog(@"获取本地消息内容失败:error = %@",aError.errorDescription);}}];/*
接收消息回调消息类型(接收到别人发送的消息可以在这里进行相应的处理:添加数据、修改视图。。。)EMMessageBodyTypeText   = 1,    文本类型
EMMessageBodyTypeImage,         图片类型 EMMessageBodyTypeVideo,         视频类型
EMMessageBodyTypeLocation,      位置类型 EMMessageBodyTypeVoice,        语音类型
EMMessageBodyTypeFile,          文件类型
EMMessageBodyTypeCmd,           命令类型*/
-(void)messagesDidReceive:(NSArray *)aMessages{for (EMMessage *message in aMessages) {if (message.body.type == EMMessageBodyTypeText) {NSLog(@"接收到文字消息");}}}//发送消息方法//发送内容EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithText:@"文字消息类型(发送文字)"];NSString *from = [[EMClient sharedClient] currentUsername];//生成MessageEMMessage *message = [[EMMessage alloc] initWithConversationID:@"会话ID(同上)" body:body ext:nil];message.chatType = EMChatTypeChat;// 设置为单聊消息[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:^(EMMessage *message, EMError *error) {if (!error) {NSLog(@"消息发送成功");}else{NSLog(@"消息发送失败 : error = %@",error.errorDescription);}}];

练习项目链接:https://github.com/cwos111509sina/EMChatText.git
如果运行报下面错误

需要自己下载环信SDK文件中的HyphoenateFullSDK/Hyphoenate.framework/Hyphoenate放到EMChatText项目HyphoenateFullSDK/Hyphoenate.framework目录下,下图:

iOS 基于环信SDK实现即时通讯-文字聊天相关推荐

  1. Android基于环信开发的即时通讯APP

    Android基于环信开发的即时通讯APP,源代码在Github上,GitHub地址为:https://github.com/PowerDos/BLChat ,希望能够帮到你们,下面是系统简介. 简介 ...

  2. Android基于环信SDK开发IM即时聊天(一)

    2016-09-02更新:可以看一下最新的这篇文章和源码,Android基于环信SDK开发IM即时聊天(二) 目前市面上我了解的做第三方即时聊天SDK的有两家:环信.融云,这里我使用环信SDK来完成即 ...

  3. Android基于环信SDK开发IM即时聊天(二)

    声明1:北京时间现在是2019/6/10,评论里的问题我看到了,这几天我找时间看看源代码问题出在哪,在此感谢大家的监督 声明2:此Demo我是在5.1测试机上测试通过,感谢WTQ_DOMIAN的评论, ...

  4. Android环信3.0即时通讯云入门指北

    Android环信3.0即时通讯云入门指北 官方文档 http://docs-im.easemob.com/im/android/sdk/import 基础集成 http://docs-im.ease ...

  5. 基于环信sdk在uni-app框架中快速开发一款多平台社交Demo

    说在前面:此款 demo 是基于 环信sdk 开发的一款具有单聊.群聊.聊天室.音视频等功能的应用.在此之前我们已经开发完 Vue.react(web端).微信小程序.这三个热门领域的版本,如有需要源 ...

  6. 环信SDK 客服和IM聊天 踩坑记录

    1 .在使用前需要在Application初始化 /*** 环信客服*/private void initCECIM(){ChatClient.Options options = new ChatCl ...

  7. android 第三方 im,Android基于环信SDK开发IM即时聊天

    目前市面上我了解的做第三方即时聊天SDK的有两家:环信.融云,这里我使用环信SDK来完成即时聊天的初步开发工作. 下面先奉上1张效果图: 1.开发准备 首先要到环信官网注册开发者账号,目前只有企业账号 ...

  8. 环信sdk android 聊天,Android基于环信SDK开发IM即时聊天

    根据用户移动地图的位置,显示在视野范围内的建筑物,简单的思路是,添加地图监听,当地图移动结束之后,计算出当前屏幕四个角的GeoPoint,根据这4个点,通过mys 目前市面上我了解的做第三方即时聊天S ...

  9. android-使用环信SDK开发即时通信功能及源码下载

    最近项目中集成即时聊天功能,挑来拣去,最终选择环信SDK来进行开发,选择环信的主要原因是接口方便.简洁,说明文档清晰易懂.文档有android.ios.和后台服务器端,还是非常全的. 环信官网:htt ...

最新文章

  1. 几种Normalization算法.md
  2. tabcontainer控件太长_asp.net AjaxControlToolKit--TabContainer控件的介绍
  3. 服务器虚拟机怎么控制,虚拟机可以控制云服务器吗
  4. CSS的表白:七夕巧克力心
  5. resultset需要关闭吗_微信视频号能关闭吗?怎么操作?3秒教你搞定
  6. Segmentation fault (core dumped)
  7. loadrunner 关联匹配多个值
  8. 【Linux】一步一步学Linux——nohup命令(136)
  9. kali linux改中文_kali linux 2019.4设置为中文方法
  10. REVERSE-PRACTICE-BUUCTF-32
  11. redis笔记_源码_内存分配
  12. python调用键盘_使用 Python 控制自己的电脑和键盘是一种什么样的体验?
  13. nvme固态硬盘开机慢_为何我使用了固态硬盘开机速度还是需要20-30秒
  14. linux 远程调试文件夹,GDB远程调试开发板程序
  15. dta乱码_DTA是自动化索引的出色工具
  16. Nifi03 处理器
  17. 如何对计算机进行硬盘的分区,使用分区助手如何对磁盘进行快速分区?
  18. mac格式化固态为exFAT格式
  19. MDI和MDIX模式配置linux,当交换机不支持MDI/MDIX时,交换机(无级连端口)间级连采用的线缆为...
  20. 解决近期Windows11更新后无法上网的问题

热门文章

  1. rov 调试单个电机
  2. 简历制作、投递、(实习)面试技巧!!
  3. 操作系统(计算机管理控制程序)
  4. 安卓zip解压软件_啥格式都能解压的神器,大神必装中文解压码都不怕
  5. 建设元宇宙需要哪些硬件?
  6. 【重磅】写了400多页的Java面试八股文PDF,面试必备
  7. JDK 32bit与64bit的区别
  8. 我做测试的3次能力飞跃,让我直接进了阿里巴巴!
  9. js-17 jQuery基础
  10. 关于uni-app导航栏中 中间大图标的设置