美文网首页环信ios 知识点iOS基础知识总结(持续更新...)
iOS 环信(3.1.5)快速集成单聊、群聊、视频及语音通话-新

iOS 环信(3.1.5)快速集成单聊、群聊、视频及语音通话-新

作者: 带你去旅行 | 来源:发表于2016-12-01 15:50 被阅读1919次

    最近项目中有涉及到即时通讯的功能,所用到的是环信3.1.5的sdk。下面就开始介绍其过程:

    (1)集成环信SDK:

    pod:pod 'HyphenateFullSDK'

    手动:因为我们要使用到语音和视频的功能,所以我们需要导入(环信 iOS HyphenateFullSDK 开发使用(包含实时通话功能))HyphenateFullSDK这个包。手动导入包文件后,我们需要手动加上一些库:

    第 1 步:SDK 包含实时语音依赖库有:

    CoreMedia.framework

    AudioToolbox.framework

    AVFoundation.framework

    MobileCoreServices.framework

    ImageIO.framework

    libc++.dylib

    libz.dylib

    libstdc++.6.0.9.dylib

    libsqlite3.dylib

    libiconv.dylib

    (如果使用的是 xcode7,后缀为 tbd。)

    第 2 步:SDK 不支持 bitcode,向 Build Settings → Linking → Enable Bitcode 中设置 NO。

    (2)添加EaseUI

    必须和SDK相对应的版本,不然会出现各种报错(方法找不到或者不对)

    注意:如果编译报错,1、先检查EaseUI中的第三方是否和本地工程中的重复。                                    2、在PCH文件中引入头文件时:#ifdef __OBJC__                                                                                                                                     #import "easeUI.h"                                                                                                       #import "EMSDKFull.h"    等等                                                                                          #endif



    正式开始代码的编写:

    //AppKey:注册的AppKey,详细见下面注释。//apnsCertName:推送证书名(不需要加后缀),详细见下面注释。

    初始化SDK:

    EMOptions*options=[EMOptions optionsWithAppkey:@"douser#istore"];    options.apnsCertName=@"istore_dev";                                                              [[EMClient sharedClient]initializeSDKWithOptions:options];

    注册:

    EMError*error=[[EMClient sharedClient]registerWithUsername:@"8001"password:@"111111"];if(error==nil){NSLog(@"注册成功");}

    登陆:

    EMError*error=[[EMClient sharedClient]loginWithUsername:@"8001"password:@"111111"];if(!error){NSLog(@"登录成功");}

    注意:具体的自动登录(免登陆)、重连、退出登陆、异地登录等请移驾至环信官方:http://docs.easemob.com/im/300iosclientintegration/30iossdkbasic

    聊天会话列表界面:建议自己搭建,便于管理和拓展

    1:直接用环信的列表界面:ConversationListController   直接初始化加到自己的tabar上去

    2:自己搭建列表界面:

    获取与自己相关的所有的会话 cell上的角标、时间、信息等 tabar上的角标

    - (void)didReceiveMessages:(NSArray *)aMessages;是刷新该列表的重点(记住注册及代理)。对方发来的消息都会在这个方法中进行刷新列表及跟新角标数等。

    注意:其他代码自行到demo中去寻找,环信demo中都有参考;

    单聊+群聊:因为自己写的效果远没有环信的好,加上需求不要对聊天界面进行自定义,所以最后我还是直接用的demo中的界面(把demo中的ChatViewController拖到自己工程中,编译,注释掉报错的代码),初始化,push到聊天界面即可:

    ChatViewController *chatController = [[ChatViewController alloc] initWithConversationChatter:conversation.conversationId  conversationType:conversation.type];

    群列表:获取与之相关所有的群

    NSArray *groups = [[EMClient sharedClient].groupManager getMyGroupsFromServerWithError:nil];

    语音和视频及时通话:因为都是环信写的 所以把有关及时通话的文件拖进来;

    ChatDemoHelper        CallViewController

    1:在pct中加上 #define DEMO_CALL 1 

    2:全局搜索#if DEMO_CALL == 1   删掉,编译如有报错请仔细看是不是哪句代码重复了或者哪里没有注释完全。

    3.ChatDemoHelper.m中 注册代码到——#pragma mark - EMCallManagerDelegate宏中间的代码都可以注释掉

    重中之重:在根控制器中一定要把控制器赋给ChatDemoHelper:[ChatDemoHelper shareHelper].mainVC = self;

    语音和视频通话必走的代码

    如果集成语音和视频过程中有问题的,可以参考官方给出的视频,不过只能借鉴:http://www.imgeek.org/video/24

    上面所述就是我使用环信的心得,不是很全面。大神手下留情,新手一枚。后续我会把单人昵称、头像;群组名称、群组头像等等的一些方法写出来,如果发现我所提出的有问题和有好的建议,请直接提出来,也可以一起讨论。qq:1804094055 有问题可以找我。

    相关文章

      网友评论

      • 小桥流水青山碧海:1804094055 这个QQ 名字老中医 ???
        带你去旅行:@minlanren 恩恩
      • JJJJJJJJD:楼主可以吧3.1.5的环信示例代码和SDK打包发给我吗?现在官方的都是3.3.1的环信,他里面的chatHelperDemo跟3.1.5的都不一样,一拖进去全是文件缺失,所以集成不到视频功能,谢谢楼主了,好人一生平安!!
        带你去旅行:@生产八哥 我之前的版本是3.1.5的 现在3.3的版本确实变了很多 我项目也更新了sdk 但是demo没有重新弄过,方法都一样,如有不懂,qq找我吧
        生产八哥:@带你去旅行 513494297@qq.com 给我发一份吧 我这全是报错 方法名都变了
        带你去旅行:你留下你的邮箱
      • 掉了西红柿皮_Kee:demo可以共享么
        JJJJJJJJD:楼主可以吧3.1.5的环信示例代码和SDK打包发给我吗?现在官方的都是3.3.1的环信,他里面的chatHelperDemo跟3.1.5的都不一样,一拖进去全是文件缺失,所以集成不到视频功能,谢谢楼主了,好人一生平安!!
        掉了西红柿皮_Kee:@带你去旅行 嗯呢 我这边搞定啦
        带你去旅行:没有demo 我直接写进项目里面的 不懂可以互相讨论

      本文标题:iOS 环信(3.1.5)快速集成单聊、群聊、视频及语音通话-新

      本文链接:https://www.haomeiwen.com/subject/vqyxmttx.html