====== 好友管理 ====== ---- 注:环信不是好友也可以聊天,不推荐使用环信的好友机制。如果你有自己的服务器或好友关系,请自己维护好友关系。 ===== 获取好友列表 ===== 获取好友列表,环信提供了两种方法。 ==== 从服务器获取所有的好友 ==== EMError *error = nil; NSArray *userlist = [[EMClient sharedClient].contactManager getContactsFromServerWithError:&error]; if (!error) { NSLog(@"获取成功 -- %@",buddyList); } === 从数据库获取所有的好友 === NSArray *userlist = [[EMClient sharedClient].contactManager getContacts]; ===== 好友申请 ===== ==== 发送加好友申请 ==== 环信 iOS SDK 提供了添加好友的方法。 EMError *error = [[EMClient sharedClient].contactManager addContact:@"6001" message:@"我想加您为好友"]; if (!error) { NSLog(@"添加成功"); } ==== 监听加好友请求 ==== 当您收到好友请求,如果您没有处理,请自己保存数据,新协议下不会每次都发送。 //注册好友回调 [[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; ==== 同意加好友申请 ==== EMError *error = [[EMClient sharedClient].contactManager acceptInvitationForUsername:@"8001"]; if (!error) { NSLog(@"发送同意成功"); } ==== 拒绝加好友申请 ==== EMError *error = [[EMClient sharedClient].contactManager declineInvitationForUsername:@"8001"]; if (!error) { NSLog(@"发送拒绝成功"); } ==== 好友申请处理结果回调 ==== 监听回调 /*! @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: 是否删除对应的会话和消息 ==== 删除好友回调 ==== 监听回调 /*! @method @brief 用户B删除与用户A的好友关系后,用户A,B会收到这个回调 */ - (void)friendshipDidRemoveByUser:(NSString *)aUsername; ===== 黑名单 ===== ==== 获取好友黑名单 ==== 环信的黑名单体系是独立的,与好友无任何关系。也就是说,您可以将任何人加入黑名单,不论他是否与您是好友关系。同时,如果您将好友加入黑名单,则他仍然是您的好友,只不过同时也在黑名单中。 查询黑名单列表,环信提供了两种方法。 === 同步方法 === EMError *error = nil; NSArray *blacklist = [[EMClient sharedClient].contactManager getBlackListFromServerWithError:&error]; if (!error) { NSLog(@"获取成功 -- %@",blockedList); } === 从数据库获取黑名单列表 === NSArray *blockList = [[EMClient sharedClient].contactManager getBlackList]; ==== 加入黑名单 ==== 接口调用 // 将6001加入黑名单 EMError *error = [[EMClient sharedClient].contactManager addUserToBlackList:@"6001" relationshipBoth:YES]; if (!error) { NSLog(@"发送成功"); } ==== 移出黑名单 ==== 接口调用 // 将6001移除黑名单 EMError *error = [[EMClient sharedClient].contactManager removeUserFromBlackList:@"6001"]; if (!error) { NSLog(@"发送成功"); } ---- 上一页:[[im:300iosclientintegration:40emmsg|消息]] 下一页:[[im:300iosclientintegration:60groupmgm|群组管理]]