一、 提前准备
- 注册环信即时通讯云账号
- 下载iOS的环信SDK
- 登陆到管理后台
- 在我的应用中创建一个应用
- 在苹果的个人开发中心创建一个推送证书(当然不创建也没用关系,只是不能推送消息而已)
- 创建完证书导出p12文件
- 在我的应用中点击你的应用选择推送证书
- 新增证书选择p12文件上传
二、 SDK导入
1.将下载完的环信SDK中的EaseMobSDK拖入到项目中2.EaseMobSDK中的lib文件夹中包含以下两个.a文件
3.EaseMobSDK目录结构
4.在AppDelegate中的didFinishLaunchingWithOp
// 注册SDK
// kEaseMobAppKey:环信后台管理->我的应用->对应的应用->应用概述->应用标识
// kEaseMobPushName:环信后台管理->我的应用->对应的应用->应用概述->推送证书->iOS->证书名称
[[EaseMob sharedInstance] registerSDKWithAppKey:kEaseMobAppKey apnsCertName:kEaseMobPushName];
- MobileCoreServices.framework
- CFNetwork.framework
- libEaseMobClientSDKLite.a
- libsqlite3.dylib
- libstdc++.6.0.9.dylib
- libz.dylib
- libiconv.dylib
- libresolv.dylib
- libxml2.dylib
三、应用程序生命周期方法中实现环信中对应的方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOp
{
}
// App进入后台
- (void)applicationDidEnterBackg
{
}
// App将要从后台返回
- (void)applicationWillEnterFore
{
}
// 申请处理时间
- (void)applicationWillTerminate
{
}
四、EaseMob项目架构的搭建
- (BOOL)registerNewAccount:(NSString *)username
- (void)asyncRegisterNewAccount:(NSString *)username
- (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 在登陆过程中, EMChatManagerLoginDelega
@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:@{kSDKConfigEnableConsoleL
3. 自动登录
自动登录实现原理
以上操作环信SDK已经做好了,我们只需要设置自动登陆的属性即可(setIsAutoLoginEnabled)
// 自动登陆完成的回调方法
-(void)didAutoLoginWithInfo:(NSDictionary *)loginInfo error:(EMError *)error
{
}
- 主动退出登陆
- 被动退出登陆
- 账号多处登陆被顶
- 正在登陆的账号在服务端被移除
- (NSDictionary *)logoffWithUnbindDeviceTo
- (void)asyncLogoffWithUnbindDev
- (void)asyncLogoffWithUnbindDev