环信3.0ios客户端的集成(六)

版本记录

版本号 时间
V1.0 2017.06.10

前言

很多app种都集成环信做第三方信息通讯工具,这里我们就看一下环信的主要功能和集成方法。先给出环信3.0的地址。
感兴趣的可以参考:
1. 环信ios客户端的集成(一)
2. 环信ios客户端的集成(二)
3. 环信ios客户端的集成(三)
4. 环信ios客户端的集成(四)
5. 环信ios客户端的集成(五)
这一篇主要说一下环信的 好友管理

一、获取好友列表

注:环信不是好友也可以聊天,不推荐使用环信的好友机制。如果你有自己的服务器或好友关系,请自己维护好友关系。

获取好友列表,环信提供了两种方法。

1. 从服务器获取所有的好友

EMError *error = nil;
NSArray *userlist = [[EMClient sharedClient].contactManager getContactsFromServerWithError:&error];
if (!error) {
    NSLog(@"获取成功 -- %@",buddyList);
}

2. 从数据库获取所有的好友

NSArray *userlist = [[EMClient sharedClient].contactManager getContacts];


二、好友申请

1. 发送加好友申请

环信 iOS SDK 提供了添加好友的方法。

EMError *error = [[EMClient sharedClient].contactManager addContact:@"6001" message:@"我想加您为好友"];
if (!error) {
    NSLog(@"添加成功");
}

2. 监听加好友请求

当您收到好友请求,如果您没有处理,请自己保存数据,新协议下不会每次都发送。

//注册好友回调
[[EMClient sharedClient].contactManager addDelegate:self delegateQueue:nil];
//移除好友回调
[[EMClient sharedClient].contactManager removeDelegate:self];

监听回调


/*!
 *  用户A发送加用户B为好友的申请,用户B会收到这个回调
 *
 *  @param aUsername   用户名
 *  @param aMessage    附属信息
 */
- (void)friendRequestDidReceiveFromUser:(NSString *)aUsername
                                message:(NSString *)aMessage; 

3. 同意加好友申请

EMError *error = [[EMClient sharedClient].contactManager acceptInvitationForUsername:@"8001"];
if (!error) {
    NSLog(@"发送同意成功");
}

4. 拒绝加好友申请

EMError *error = [[EMClient sharedClient].contactManager declineInvitationForUsername:@"8001"];
if (!error) {
    NSLog(@"发送拒绝成功");
}

5. 好友申请处理结果回调

监听回调


/*!
 @method
 @brief 用户A发送加用户B为好友的申请,用户B同意后,用户A会收到这个回调
 */
- (void)friendRequestDidApproveByUser:(NSString *)aUsername;

/*!
 @method
 @brief 用户A发送加用户B为好友的申请,用户B拒绝后,用户A会收到这个回调
 */
- (void)friendRequestDidDeclineByUser:(NSString *)aUsername;


三、删除好友

// 删除好友
EMError *error = [[EMClient sharedClient].contactManager deleteContact:@"6001" isDeleteConversation:YES];
if (!error) {
    NSLog(@"删除成功");
}

  • deleteContact: 要删除的用户
  • isDeleteConversation: 是否删除对应的会话和消息

四、黑名单

1. 获取好友黑名单

环信的黑名单体系是独立的,与好友无任何关系。也就是说,您可以将任何人加入黑名单,不论他是否与您是好友关系。同时,如果您将好友加入黑名单,则他仍然是您的好友,只不过同时也在黑名单中。

查询黑名单列表,环信提供了两种方法。

同步方法


EMError *error = nil;
NSArray *blacklist = [[EMClient sharedClient].contactManager getBlackListFromServerWithError:&error];
if (!error) {
    NSLog(@"获取成功 -- %@",blockedList);
}

从数据库获取黑名单列表

NSArray *blockList = [[EMClient sharedClient].contactManager getBlackList];

2. 加入黑名单

//将6001加入黑名单
EMError *error = [[EMClient sharedClient].contactManager addUserToBlackList:@"6001" relationshipBoth:YES];
if (!error) {
    NSLog(@"发送成功");
}

3. 移出黑名单

接口调用

// 将6001移除黑名单
EMError *error = [[EMClient sharedClient].contactManager removeUserFromBlackList:@"6001"];
if (!error) {
    NSLog(@"发送成功");
}

后记

未完,待续~~~

环信3.0ios客户端的集成(六)_第1张图片
风景

你可能感兴趣的:(环信3.0ios客户端的集成(六))