即时通信---环信SDK(IOS)使用教程

一、 提前准备

  1. 注册环信即时通讯云账号
  2. 下载iOS的环信SDK
  3. 登陆到管理后台
  4. 在我的应用中创建一个应用
  5. 在苹果的个人开发中心创建一个推送证书(当然不创建也没用关系,只是不能推送消息而已)
  6. 创建完证书导出p12文件
  7. 在我的应用中点击你的应用选择推送证书
  8. 新增证书选择p12文件上传

二、 SDK导入

1.将下载完的环信SDK中的EaseMobSDK拖入到项目中
2.EaseMobSDK中的lib文件夹中包含以下两个.a文件
                          libEaseMobClientSDK:包含所有功能 
                        libEaseMobClientSDKLite:不包含实时语音 ,所以二者只需要保留一个,同时需要在include文件夹中也需要删除一个文件夹
3.EaseMobSDK目录结构
            EaseMobSDKinclude(包含对应功能服务的头文件)CallService(语音服务)
          ChatService(聊天服务)
          EaseMobClientSDK(客户端主要使用的SDK头文件)
          Utility(硬件相关接口和错误码定义)
          lib(静态库)
          resources(资源文件)
4.在AppDelegate中的didFinishLaunchingWithOp tions注册EaseMobSDK

// 注册SDK

// kEaseMobAppKey:环信后台管理->我的应用->对应的应用->应用概述->应用标识

// kEaseMobPushName:环信后台管理->我的应用->对应的应用->应用概述->推送证书->iOS->证书名称

[[EaseMob sharedInstance] registerSDKWithAppKey:kEaseMobAppKey apnsCertName:kEaseMobPushName];

5.导入框架
    
  • MobileCoreServices.framework
  • CFNetwork.framework
  • libEaseMobClientSDKLite.a
  • libsqlite3.dylib
  • libstdc++.6.0.9.dylib
  • libz.dylib
  • libiconv.dylib
  • libresolv.dylib
  • libxml2.dylib
6.Build Settings->Linking->Other Linker Flags 中 添加-ObjC 或者 force_load 静态库路径

三、应用程序生命周期方法中实现环信中对应的方法


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    [[EaseMob sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];

    return YES;

}

// App进入后台

- (void)applicationDidEnterBackground:(UIApplication *)application

{

    [[EaseMob sharedInstance] applicationDidEnterBackground:application];

}

// App将要从后台返回

- (void)applicationWillEnterForeground:(UIApplication *)application

{

    [[EaseMob sharedInstance] applicationWillEnterForeground:application];

}

// 申请处理时间

- (void)applicationWillTerminate:(UIApplication *)application

{

    [[EaseMob sharedInstance] applicationWillTerminate:application];

 

}



四、EaseMob项目架构的搭建

  1.注册EaseMob
    注意:
              注册账号不能为中文
              在环信后台管理创建应用时需要选择开放注册
   注册EaseMob代码

- (BOOL)registerNewAccount:(NSString *)username

                  password:(NSString *)password

                     error:(EMError **)pError;

- (void)asyncRegisterNewAccount:(NSString *)username

                       password:(NSString *)password;

- (void)asyncRegisterNewAccount:(NSString *)username password:(NSString *)password withCompletion:(void (^)(NSString *username, NSString *password, EMError *error))completion onQueue:(dispatch_queue_t)aQueue;

2.EaseMob登陆 

   登录方法如下

/!
@method
@brief
使用用户名密码登录聊天服务器
@discussion
如果登陆失败, 返回nil
@param username
用户名
@param password
密码
@param pError
错误信息
@result
登录后返回的用户信息
/

-(NSDictionary )loginWithUsername:(NSString )username
password:(NSString *)password
error:(EMError **)pError;

/!
@method
@brief
异步方法, 使用用户名密码登录聊天服务器
@discussion
在登陆过程中, EMChatManagerLoginDelegate中的didLoginWithInfo:error:回调会被触发
@param username
用户名
@param password
密码
@result
/

-(void)asyncLoginWithUsername:(NSString )username
password:(NSString
)password;

/!
@method
@brief
异步方法, 使用用户名密码登录聊天服务器
@discussion
@param username
用户名
@param password
密码
@param completion
回调
@param aQueue
回调时的线程
@result
/

-(void)asyncLoginWithUsername:(NSString )username
password:(NSString
)password
completion:(void (^)(NSDictionary loginInfo, EMError error))completion
onQueue:(dispatch_queue_t)aQueue;

//关闭打印数据

[[EaseMob sharedInstance] registerSDKWithAppKey:kEaseMobAppKey apnsCertName:kEaseMobPushName otherConfig:@{kSDKConfigEnableConsoleLogger:@(NO)}];

3. 自动登录

 自动登录实现原理

                     在登陆成功之后将登陆信息存储到沙盒中
                   下次程序启动从沙盒中拿到用户名和密码直接调用登陆的接口
以上操作环信SDK已经做好了,我们只需要设置自动登陆的属性即可(setIsAutoLoginEnabled)
 登陆完成调用代理方法

// 自动登陆完成的回调方法

-(void)didAutoLoginWithInfo:(NSDictionary *)loginInfo error:(EMError *)error

{

   NSLog(@"loginInfo = %@",loginInfo);

   [MBProgressHUD hideAllHUDsForView:self.window animated:YES];

   if (error) {

        [[TKAlertCenter defaultCenter]postAlertWithMessage:@"登陆失败"];

    }else{

        [[TKAlertCenter defaultCenter]postAlertWithMessage:@"登陆成功"];

        [self loginSuccess];

    }

 

}

4.easeMob退出登录
  • 主动退出登陆
  • 被动退出登陆
    • 账号多处登陆被顶
    • 正在登陆的账号在服务端被移除
退出登录的方法

 

- (NSDictionary *)logoffWithUnbindDeviceToken:(BOOL)isUnbind

                                        error:(EMError **)pError;

 

- (void)asyncLogoffWithUnbindDeviceToken:(BOOL)isUnbind;

 

- (void)asyncLogoffWithUnbindDeviceToken:(BOOL)isUnbind

                              completion:(void (^)(NSDictionary *info, EMError *error))completion

                                 onQueue:(dispatch_queue_t)aQueue;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值