iOS 基于环信SDK实现即时通讯-文字聊天
这里介绍集成环信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实现即时通讯-文字聊天相关推荐
- Android基于环信开发的即时通讯APP
Android基于环信开发的即时通讯APP,源代码在Github上,GitHub地址为:https://github.com/PowerDos/BLChat ,希望能够帮到你们,下面是系统简介. 简介 ...
- Android基于环信SDK开发IM即时聊天(一)
2016-09-02更新:可以看一下最新的这篇文章和源码,Android基于环信SDK开发IM即时聊天(二) 目前市面上我了解的做第三方即时聊天SDK的有两家:环信.融云,这里我使用环信SDK来完成即 ...
- Android基于环信SDK开发IM即时聊天(二)
声明1:北京时间现在是2019/6/10,评论里的问题我看到了,这几天我找时间看看源代码问题出在哪,在此感谢大家的监督 声明2:此Demo我是在5.1测试机上测试通过,感谢WTQ_DOMIAN的评论, ...
- Android环信3.0即时通讯云入门指北
Android环信3.0即时通讯云入门指北 官方文档 http://docs-im.easemob.com/im/android/sdk/import 基础集成 http://docs-im.ease ...
- 基于环信sdk在uni-app框架中快速开发一款多平台社交Demo
说在前面:此款 demo 是基于 环信sdk 开发的一款具有单聊.群聊.聊天室.音视频等功能的应用.在此之前我们已经开发完 Vue.react(web端).微信小程序.这三个热门领域的版本,如有需要源 ...
- 环信SDK 客服和IM聊天 踩坑记录
1 .在使用前需要在Application初始化 /*** 环信客服*/private void initCECIM(){ChatClient.Options options = new ChatCl ...
- android 第三方 im,Android基于环信SDK开发IM即时聊天
目前市面上我了解的做第三方即时聊天SDK的有两家:环信.融云,这里我使用环信SDK来完成即时聊天的初步开发工作. 下面先奉上1张效果图: 1.开发准备 首先要到环信官网注册开发者账号,目前只有企业账号 ...
- 环信sdk android 聊天,Android基于环信SDK开发IM即时聊天
根据用户移动地图的位置,显示在视野范围内的建筑物,简单的思路是,添加地图监听,当地图移动结束之后,计算出当前屏幕四个角的GeoPoint,根据这4个点,通过mys 目前市面上我了解的做第三方即时聊天S ...
- android-使用环信SDK开发即时通信功能及源码下载
最近项目中集成即时聊天功能,挑来拣去,最终选择环信SDK来进行开发,选择环信的主要原因是接口方便.简洁,说明文档清晰易懂.文档有android.ios.和后台服务器端,还是非常全的. 环信官网:htt ...
最新文章
- 几种Normalization算法.md
- tabcontainer控件太长_asp.net AjaxControlToolKit--TabContainer控件的介绍
- 服务器虚拟机怎么控制,虚拟机可以控制云服务器吗
- CSS的表白:七夕巧克力心
- resultset需要关闭吗_微信视频号能关闭吗?怎么操作?3秒教你搞定
- Segmentation fault (core dumped)
- loadrunner 关联匹配多个值
- 【Linux】一步一步学Linux——nohup命令(136)
- kali linux改中文_kali linux 2019.4设置为中文方法
- REVERSE-PRACTICE-BUUCTF-32
- redis笔记_源码_内存分配
- python调用键盘_使用 Python 控制自己的电脑和键盘是一种什么样的体验?
- nvme固态硬盘开机慢_为何我使用了固态硬盘开机速度还是需要20-30秒
- linux 远程调试文件夹,GDB远程调试开发板程序
- dta乱码_DTA是自动化索引的出色工具
- Nifi03 处理器
- 如何对计算机进行硬盘的分区,使用分区助手如何对磁盘进行快速分区?
- mac格式化固态为exFAT格式
- MDI和MDIX模式配置linux,当交换机不支持MDI/MDIX时,交换机(无级连端口)间级连采用的线缆为...
- 解决近期Windows11更新后无法上网的问题