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

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

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

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

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

本文介绍如何通过环信即时通讯 IM React Native SDK 实现上述功能。

技术原理

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

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

前提条件

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

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

实现方法

添加好友

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

// 用户 ID const userId = "foo"; // 申请加为好友的理由 const reason = "Request to add a friend."; 
ChatClient.getInstance() .contactManager.addContact(userId, reason) .then(() => { console.log("request 
send success."); }) .catch((reason) => { console.log("request send fail.", reason); }); 
 

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

同意成为好友:

// 用户 ID const userId = "bar"; ChatClient.getInstance() .contactManager.acceptInvitation(userId) 
.then(() => { console.log("accept request success."); }) .catch((reason) => { console.log("accept request fail.", reason); }); 
 

拒绝成为好友:

// 用户 ID const userId = "bar"; ChatClient.getInstance() .contactManager.declineInvitation(userId) 
.then(() => { console.log("decline request success."); }) .catch((reason) => { console.log("decline request fail.", reason); }); 
 

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

const contactEventListener = new (class implements ChatContactEventListener { that: any; constructor
(parent: any) { this.that = parent; } onContactInvited(userId: string, reason?: string): void 
{ console.log(`onContactInvited: ${userId}, ${reason}: `); } })(this); ChatClient.getInstance()
.contactManager.addContactListener( contactEventListener ); 
 

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

const contactEventListener = new (class implements ChatContactEventListener { that: any; constructor
(parent: any) { this.that = parent; } onFriendRequestDeclined(userId: string): void { console.log
(`onFriendRequestDeclined: ${userId}: `); } })(this); ChatClient.getInstance().contactManager.
addContactListener( contactEventListener ); 
 

获取好友列表

你可以从服务器获取好友列表,也可以从本地数据库获取已保存的好友列表。

注意

需要从服务器获取好友列表之后,才能从本地数据库获取到好友列表。

  1. 从服务器获取好友列表

ChatClient.getInstance() .contactManager.getAllContactsFromServer() .then((value) => { console.
log("get contact success.", value); }) .catch((reason) => { console.log("get contact fail.", reason); }); 
 

  1. 从本地数据库中获取好友列表

ChatClient.getInstance() .contactManager.getAllContactsFromDB() .then((value) => { console.log
("get contact success.", value); }) .catch((reason) => { console.log("get contact fail.", reason); }); 
 

删除好友

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

// 用户 ID const userId = "tom"; // 是否保留聊天会话 const keepConversation = true; ChatClient.
getInstance() .contactManager.deleteContact(userId, keepConversation) .then(() => { console.log
("remove success."); }) .catch((reason) => { console.log("remove fail.", reason); }); 
 

将用户加入黑名单

加入黑名单后,对方将无法发送消息给自己。

// 用户 ID const userId = "tom"; // 将用户添加到黑名单 ChatClient.getInstance() .contactManager
.addUserToBlockList(userId) .then(() => { console.log("add block list success."); }) .catch((reason)
 => { console.log("add block list fail.", reason); }); 
 

查看当前用户黑名单列表

  1. 使用本地缓存获取黑名单列表

ChatClient.getInstance() .contactManager.getBlockListFromDB() .then((list) => { console.log
("get block list success: ", list); }) .catch((reason) => { console.log("get block list fail.", reason); }); 
 

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

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

ChatClient.getInstance() .contactManager.getBlockListFromServer() .then((list) => { console.log
("get block list success: ", list); }) .catch((reason) => { console.log("get block list fail.", reason); }); 
 

从黑名单中移除用户

被移出黑名单后,用户发送消息等行为将恢复。

// 用户 ID const userId = "tom"; // 将用户从黑名单移除 ChatClient.getInstance() 
.contactManager.removeUserFromBlockList(userId) .then((list) => { console.log("remove user
 to block list success: ", list); }) .catch((reason) => { console.log("remove user to block list fail.", reason); });

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