好友相关

更新时间: 2025/07/15 13:43:05

网易云信即时通讯 SDK(NetEase IM SDK,以下简称 NIM SDK)支持好友信息的管理,支持添加/删除好友,接受/拒绝好友申请,设置好友信息等。

本文介绍好友信息相关的 API。更多好友相关功能请参考开发指南文档 好友关系

API 概览

好友关系监听

API 说明 起始版本
listen 注册好友关系相关监听器 v10.3.0
cancel 取消注册好友关系相关监听器 v10.3.0

好友关系操作

API 说明 起始版本
addFriend 添加好友 v10.3.0
deleteFriend 删除好友 v10.3.0
acceptAddApplication 接受好友申请 v10.3.0
rejectAddApplication 拒绝好友申请 v10.3.0
setFriendInfo 设置好友信息 v10.3.0
getFriendList 获取好友列表 v10.3.0
getFriendByIds 根据账号 ID 获取好友信息列表 v10.3.0
checkFriend 根据账号 ID 查询好友状态 v10.3.0
getAddApplicationList 获取申请添加好友信息列表 v10.3.0
getAddApplicationUnreadCount 获取未读的好友申请数量 v10.3.0
setAddApplicationRead 设置好友申请已读 v10.3.0
searchFriendByOption 根据关键字信息搜索好友信息 v10.3.0
clearAllAddApplication 清空所有好友申请 v10.5.0
deleteAddApplication 删除指定的好友申请 v10.9.0

接口类

FriendService 类提供好友关系相关接口,包括注册好友关系监听,添加、删除好友,接受、拒绝好友申请,获取、设置好友信息等接口。

listen

接口描述

注册好友关系相关监听。

注册成功后,当事件发生时,SDK 会返回对应的回调。

  • 建议在初始化后调用该方法。
  • 全局只需注册一次。
  • 该方法为同步。

回调事件

  • onFriendAdded:添加好友成功回调,返回添加成功的好友信息列表,包括本端直接添加好友和其他端同步添加的好友。
  • onFriendDeleted:删除好友回调,返回删除的好友信息,包括本端直接删除好友、其他端同步删除的好友以及对方好友删除自己。
  • onFriendAddApplication:申请添加好友回调,返回申请添加为好友的信息。
  • onFriendAddRejected:被对方拒绝好友添加申请的回调,被拒绝的好友申请信息。
  • onFriendInfoChanged:好友信息更新回调,返回变更的好友信息,包括本端直接更新的好友信息和其他端同步更新的好友信息。

示例代码

dartsubsriptions.add(NimCore.instance.friendService.onFriendAddApplication.listen((e){
    //do something
  }));

  subsriptions.add(NimCore.instance.friendService.onFriendAdded.listen((e){
    //do something
  }));

  subsriptions.add(NimCore.instance.friendService.onFriendAddRejected.listen((e){
    //do something
  }));

  subsriptions.add(NimCore.instance.friendService.onFriendDeleted.listen((e){
    //do something
  }));

  subsriptions.add(NimCore.instance.friendService.onFriendInfoChanged.listen((e){
    //do something
  }));

cancel

接口描述

取消注册好友关系相关监听。

该方法为同步。

示例代码

dartsubsriptions.forEach((subsription) {
      subsription.cancel();
    });

addFriend

接口描述

添加好友。添加好友分为以下两种模式(NIMFriendAddMode):

  • 直接添加为好友,对应枚举为 nimFriendModeTypeAdd

    该模式下,调用接口成功后,本端和对端(被添加的好友)都会收到 onFriendAdded 回调。

  • 请求添加对方为好友,需要对方验证通过才能添加,对应枚举为 nimFriendModeTypeApply

    该模式下,调用接口成功后,对端(被添加的好友)会收到 onFriendAddApplication 回调。

参数说明

dartFuture<NIMResult<void>> addFriend(
    String accountId, NIMFriendAddParams? params) async {
  return _platform.addFriend(accountId, params);
}
参数名称 类型 是否必填 说明
accountId String 需要添加为好友的账号 ID。
params NIMFriendAddParams 添加好友的配置参数。

示例代码

dartawait NimCore.instance.friendService.addFriend(accountId, params);

返回值

NIMResult<void>

相关回调

  • onFriendAdded:添加好友回调
  • onFriendAddApplication:好友添加申请的回调

deleteFriend

接口描述

删除好友。当前的删除是指双向删除,即当一个用户将另一个用户从好友列表中删除时,双方的好友关系都会被解除。

调用接口成功后,本端和对端(被删除的好友)都会收到 onFriendDeleted 回调。

参数说明

dartFuture<NIMResult<void>> deleteFriend(
    String accountId, NIMFriendDeleteParams? params) async {
  return _platform.deleteFriend(accountId, params);
}
参数名称 类型 是否必填 说明
accountId String 需要删除的好友的账号 ID。
params NIMFriendDeleteParams 删除好友的配置参数。

示例代码

dartawait NimCore.instance.friendService.deleteFriend(accountId, params);

返回值

NIMResult<void>

相关回调

onFriendDeleted:删除好友回调

acceptAddApplication

接口描述

接受好友申请。调用接口成功后,本端和对端(发起好友申请的用户)都会收到 onFriendAdded 回调。

操作完成后,SDK 内部会更新申请添加好友信息(applicationInfo)相关操作的状态(NIMFriendAddApplicationStatus)并处理相关错误码。

参数说明

dartFuture<NIMResult<void>> acceptAddApplication(
    NIMFriendAddApplication application) async {
  return _platform.acceptAddApplication(application);
}
参数名称 类型 是否必填 说明
application NIMFriendAddApplication 申请添加好友的相关信息。

示例代码

dartawait NimCore.instance.friendService.acceptAddApplication(application);

返回值

NIMResult<void>

相关回调

onFriendAdded:添加好友回调

rejectAddApplication

接口描述

拒绝好友申请。调用接口成功后,对端(发起好友申请的用户)会收到 onFriendAddRejected 回调。

操作完成后,SDK 内部会更新申请添加好友信息(applicationInfo)相关操作的状态(NIMFriendAddApplicationStatus)并处理相关错误码。

参数说明

dartFuture<NIMResult<void>> rejectAddApplication(
    NIMFriendAddApplication application, String postscript) async {
  return _platform.rejectAddApplication(application, postscript);
}
参数名称 类型 是否必填 说明
application NIMFriendAddApplication 申请添加好友的相关信息。
postscript String 拒绝好友申请的附言。

示例代码

dartawait NimCore.instance.friendService.rejectAddApplication(application, postscript);

返回值

NIMResult<void>

相关回调

onFriendAddRejected:被对方拒绝好友添加申请的回调

setFriendInfo

接口描述

设置好友信息。调用该接口成功后,本端会收到 onFriendInfoChanged 回调。

参数说明

dartFuture<NIMResult<void>> setFriendInfo(
    String accountId, NIMFriendSetParams params) async {
  return _platform.setFriendInfo(accountId, params);
}
参数名称 类型 是否必填 说明
accountId String 申请添加好友的相关信息。
params NIMFriendSetParams 设置好友信息的配置参数。

示例代码

dartawait NimCore.instance.friendService.setFriendInfo(accountId, params);

返回值

NIMResult<void>

相关回调

onFriendInfoChanged:好友信息更新回调

getFriendList

接口描述

本地查询好友列表。

用户登录后,SDK 开始同步好友信息,建议同步完成后,调用该接口拉取完整的好友信息列表。

参数说明

dartFuture<NIMResult<List<NIMFriend>>> getFriendList() async {
  return _platform.getFriendList();
}

示例代码

dartawait NimCore.instance.friendService.getFriendList();

返回值

NIMResult<List<NIMFriend>>:好友信息列表

相关回调

getFriendByIds

接口描述

根据账号 ID 获取好友信息列表,只返回账号 ID 存在的好友信息。

参数说明

dartFuture<NIMResult<List<NIMFriend>>> getFriendByIds(
    List<String> accountIds) async {
  return _platform.getFriendByIds(accountIds);
}
参数名称 类型 是否必填 说明
accountIds List<String> 需要查询信息的好友 ID 列表。

示例代码

dartawait NimCore.instance.friendService.getFriendByIds(accountIds);

返回值

NIMResult<List<NIMFriend>>:好友信息列表

相关回调

checkFriend

接口描述

根据账号 ID 查询好友状态。

参数说明

dartFuture<NIMResult<Map<String, bool>>> checkFriend(
    List<String> accountIds) async {
  return _platform.checkFriend(accountIds);
}
参数名称 类型 是否必填 说明
accountIds List<String> 需要查询好友状态的账号 ID 列表。

示例代码

dartawait NimCore.instance.friendService.checkFriend(accountIds);

返回值

NIMResult<Map<String, bool>>:好友关系

相关回调

getAddApplicationList

接口描述

获取申请添加好友信息列表。

SDK 将按照从新到旧的顺序进行查询。

参数说明

dartFuture<NIMResult<NIMFriendAddApplicationResult>> getAddApplicationList(
    NIMFriendAddApplicationQueryOption option) async {
  return _platform.getAddApplicationList(option);
}
参数名称 类型 是否必填 说明
option NIMFriendAddApplicationQueryOption 查询申请添加好友信息的相关配置参数。

示例代码

dartawait NimCore.instance.friendService.getAddApplicationList(option);

返回值

NIMResult<NIMFriendAddApplicationResult>:添加好友申请的结果信息

相关回调

getAddApplicationUnreadCount

接口描述

获取未读的好友申请(状态为未处理)数量。

参数说明

dartFuture<NIMResult<int>> getAddApplicationUnreadCount() async {
  return _platform.getAddApplicationUnreadCount();
}

示例代码

dartawait NimCore.instance.friendService.getAddApplicationUnreadCount();

返回值

NIMResult<int>

相关回调

setAddApplicationRead

接口描述

设置好友申请已读。

调用该方法,历史未读的好友申请数据均标记为已读。

参数说明

dartFuture<NIMResult<void>> setAddApplicationRead() async {
  return _platform.setAddApplicationRead();
}

示例代码

dartawait NimCore.instance.friendService.setAddApplicationRead();

返回值

NIMResult<void>

相关回调

searchFriendByOption

接口描述

根据关键字信息搜索好友信息。

参数说明

dartFuture<NIMResult<List<NIMFriend>>> searchFriendByOption(
    NIMFriendSearchOption friendSearchOption) async {
  return _platform.searchFriendByOption(friendSearchOption);
}
参数名称 类型 是否必填 说明
friendSearchOption NIMFriendSearchOption 好友搜索的相关配置参数。

示例代码

dartawait NimCore.instance.friendService.searchFriendByOption(friendSearchOption);

返回值

NIMResult<List<NIMFriend>>:好友信息列表

相关回调

clearAllAddApplication

接口描述

清空所有好友申请。

调用该方法,历史所有的好友申请数据均被清空。

参数说明

dartFuture<NIMResult<void>> clearAllAddApplication()

无参数。

示例代码

dartawait NimCore.instance.friendService.clearAllAddApplication();

返回值

NIMResult<void>

相关回调

deleteAddApplication

接口描述

删除指定的好友申请。

参数说明

dartFuture<NIMResult<void>> deleteAddApplication( NIMFriendAddApplication application )
参数名称 类型 是否必填 说明
application NIMFriendAddApplication 申请添加好友的相关信息。

示例代码

dartNimCore.instance.friendService.deleteAddApplication(application).then((result){

    });

返回值

NIMResult<void>

相关回调

此文档是否对你有帮助?
有帮助
去反馈
  • API 概览
  • 好友关系监听
  • 好友关系操作
  • 接口类
  • listen
  • cancel
  • addFriend
  • deleteFriend
  • acceptAddApplication
  • rejectAddApplication
  • setFriendInfo
  • getFriendList
  • getFriendByIds
  • checkFriend
  • getAddApplicationList
  • getAddApplicationUnreadCount
  • setAddApplicationRead
  • searchFriendByOption
  • clearAllAddApplication
  • deleteAddApplication