上云无忧 > 文档中心 > 环信IM即时通讯使用教程(Flutter) - 管理用户关系
IM即时通讯
环信IM即时通讯使用教程(Flutter) - 管理用户关系

文档简介:
用户登录后,可进行添加联系人、获取好友列表等操作。 SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理: 好友列表管理:查询好友列表、申请添加好友、同意好友申请、拒绝好友申请和删除好友等操作。 黑名单管理:查询黑名单列表、添加用户至黑名单以及将用户移除黑名单等操作。 本文介绍如何通过环信即时通讯 IM Flutter SDK 管理用户关系。
*此产品及展示信息均由环信官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

用户登录后,可进行添加联系人、获取好友列表等操作。

SDK 提供用户关系管理功能,包括好友列表管理和黑名单管理:

  • 好友列表管理:查询好友列表、申请添加好友、同意好友申请、拒绝好友申请和删除好友等操作。
  • 黑名单管理:查询黑名单列表、添加用户至黑名单以及将用户移除黑名单等操作。

本文介绍如何通过环信即时通讯 IM Flutter SDK 管理用户关系。

技术原理

环信即时通讯 IM Flutter SDK 提供 EMContactManager 类实现好友的添加移除,黑名单的添加移除等功能。主要方法如下:

  • addContact 申请添加好友;
  • deleteContact 删除好友;
  • acceptInvitation 同意好友申请;
  • declineInvitation 拒绝好友申请;
  • getAllContactsFromServer 从服务器获取好友列表;
  • getAllContactsFromDB 从本地数据库中获取好友列表;
  • addUserToBlockList 添加用户到黑名单;
  • removeUserFromBlockList 将用户从黑名单移除;
  • getBlockListFromServer 从服务器获取黑名单列表。

前提条件

开始前,请确保满足以下条件:

  • 完成 SDK 初始化,并连接到服务器,详见 快速开始。
  • 了解环信即时通讯 IM 的使用限制,详见 使用限制。

实现方法

添加好友

  1. 用户添加指定用户为好友

// 要添加为联系人的用户 ID String userId = "foo"; // 申请加为好友的理由 String reason = "Request
 to add a friend."; try{ await EMClient.getInstance.contactManager.addContact(userId, reason); } on EMError catch (e) { } 
 

  1. 对方收到申请,同意成为好友,或者拒绝成为好友

同意成为好友示例代码如下:

// 用户 ID String userId = "bar"; try{ await EMClient.getInstance.contactManager.
acceptInvitation(userId); } on EMError catch (e) { } 
 

拒绝成为好友示例代码如下:

// 用户 ID String userId = "bar"; try{ await EMClient.getInstance.contactManager.
declineInvitation(userId); } on EMError catch (e) { } 
 

  1. 接收方对于同意,申请方收到监听事件 onContactInvited。

// 注册监听 EMClient.getInstance.contactManager.addEventHandler( "UNIQUE_HANDLER_ID",
 EMContactEventHandler( onFriendRequestAccepted: (userId, reason) {}, ), ); 
// 移除监听 EMClient.getInstance.contactManager.removeEventHandler("UNIQUE_HANDLER_ID"); 
 

  1. 对方拒绝,收到监听事件 onFriendRequestDeclined。

// 注册监听 EMClient.getInstance.contactManager.addEventHandler( "UNIQUE_HANDLER_ID",
 EMContactEventHandler( onFriendRequestDeclined: (userId) {}, ), ); // 移除监听 EMClient.
getInstance.contactManager.removeEventHandler("UNIQUE_HANDLER_ID"); 
 

获取好友列表

  1. 从服务器获取好友列表
List<String> contacts = await EMClient.getInstance.contactManager.getAllContactsFromServer(); 
 
  1. 从本地数据库中获取好友列表
List<String> contacts = await EMClient.getInstance.contactManager.getAllContactsFromDB(); 
 

删除好友

删除联系人时会同时删除对方联系人列表中的该用户,建议执行双重确认,以免发生误删操作。删除操作不需要对方同意或者拒绝。

可同时选择是否保留聊天会话,示例代码如下:

// 用户 ID String userId = "tom"; // 是否保留聊天会话 bool keepConversation = true; try
 { await EMClient.getInstance.contactManager.deleteContact( userId, keepConversation, ); } on EMError catch (e) { } 
 

将用户加入黑名单

你可以调用 addUserToBlockList 添加用户到黑名单,添加后对方将无法发送消息给自己。

用户可以将任何其他聊天用户添加到他们的黑名单列表中,无论该用户是否是联系人。添加到黑名单列表的联系人保留在联系人列表中。

// 用户 ID String userId = "tom"; try { await EMClient.getInstance.contactManager.addUserToBlockList
(userId); } on EMError catch (e) { } 
 

查看当前用户黑名单列表

  1. 通过服务器获取黑名单列表

从服务器获取黑名单列表之后,才能从本地数据库获取到黑名单列表。

try { List<String> list = await EMClient.getInstance.contactManager.getBlockListFromServer(); } on EMError catch (e) { } 
 
  1. 使用本地缓存获取黑名单列表
try { List<String> list = await EMClient.getInstance.contactManager.getBlockListFromDB(); } on EMError catch (e) { } 
 

将用户从黑名单移除

你可以调用 removeUserFromBlockList 将用户从黑名单移除,用户发送消息等行为将恢复。

String userId = "tom"; try { await EMClient.getInstance.contactManager.removeUserFromBlockList
(userId); } on EMError catch (e) { }

相似文档
  • 功能描述: 群组是支持多人沟通的即时通讯系统,成员关系相对稳定。所有群成员可以收到群中的消息,可以在群中发送消息。群成员离线时可以收到推送消息。群组成员支持多种角色:群主、群管理员和普通成员。群组提供丰富的管理能力,如群组禁言、群公告和群文件等。
  • 群组是支持多人沟通的即时通讯系统,本文介绍如何使用环信即时通讯 IM SDK 在实时互动 app 中创建和管理群组,并实现群组相关功能。 如需查看消息相关内容,参见 消息管理。
  • 群组是支持多人沟通的即时通讯系统,本文介绍如何使用环信即时通讯 IM Flutter SDK 在实时互动 app 中实现群组成员管理相关功能。 技术原理: 环信即时通讯 IM Flutter SDK 提供 EMGroup、EMGroupManager 和 EMGroupEventHandler 类用于群组管理,支持你通过调用 API 在项目中实现如下功能: 群组加人、踢人、 管理群主及群管理员、 管理群组黑名单、 管理群组禁言列表、 开启、关闭群组全员禁言、 管理群组白名单。
  • 群组是支持多人沟通的即时通讯系统,本文介绍如何使用环信即时通讯 IM Flutter SDK 在实时互动 app 中实现群组属性相关功能。 技术原理: 环信即时通讯 IM Flutter SDK 提供 EMGroup、EMGroupManager 和 EMGroupEventHandler 类用于群组管理,支持你通过调用 API 在项目中实现如下功能: 修改群组名称及描述、 获取、更新群组公告、 管理群组共享文件、 更新群扩展字段。
  • 功能描述: 聊天室是支持多人加入的类似 Twitch 的组织。聊天室中的成员没有固定关系,用户离线后,超过 5 分钟会自动退出聊天室。聊天室成员在离线后,不会收到推送消息。聊天室可以应用于直播、消息广播等。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部