浏览 SDKs · WASM
SDKsWASM

获取收到的好友申请

分页查询当前用户收到的好友申请。

复制

调用 getFriendApplicationListAsRecipient() 并传入 handleResultsoffsetcount,分页查询当前用户收到的好友申请。

参数说明

参数类型是否必填说明
handleResultsnumber[]要查询的申请处理结果。
offsetnumber分页偏移量,首页传 0
countnumber本次请求的申请数量。
枚举值数值含义
ApplicationHandleResult.Unprocessed0待处理。
ApplicationHandleResult.Agree1已同意。
ApplicationHandleResult.Reject-1已拒绝。
import {
  ApplicationHandleResult,
  CbEvents,
} from '@openim/wasm-client-sdk';

const { data: applications } =
  await openimsdk.getFriendApplicationListAsRecipient({
    handleResults: [ApplicationHandleResult.Unprocessed],
    offset: 0,
    count: 20,
  });

Promise 成功后,data 是当前页 FriendApplicationItem[];查询不会触发申请事件。

好友申请字段

字段类型说明
fromUserIDstring申请发起人的用户 ID。
fromNicknamestring申请发起人的昵称快照。
fromFaceURLstring申请发起人的头像快照。
toUserIDstring申请接收人的用户 ID。
toNicknamestring申请接收人的昵称快照。
toFaceURLstring申请接收人的头像快照。
reqMsgstring申请附言。
handleResultApplicationHandleResult当前处理结果:待处理、已同意或已拒绝。
handlerUserIDstring执行处理的用户 ID;未处理时可能为空。
handleMsgstring处理时填写的说明。
handleTimenumber处理时间;未处理时不应作为有效时间使用。
createTimenumber申请记录创建时间。
exstring申请记录扩展字符串。

申请记录使用 fromUserID:toUserID 作为合并标识。昵称和头像是申请创建或同步时的快照,需要展示最新账号资料时再按 userID 查询。

同步好友申请变化

好友申请按 fromUserID:toUserID 定位。本页是 OnFriendApplicationAddedOnFriendApplicationAcceptedOnFriendApplicationRejectedOnFriendApplicationDeleted商业版 的完整监听归属页。

const handleApplicationChanged = ({ data }) =>
  mergeFriendApplication(data);
const handleApplicationDeleted = ({ data }) =>
  removeFriendApplication(data.fromUserID, data.toUserID);

openimsdk.on(
  CbEvents.OnFriendApplicationAdded,
  handleApplicationChanged,
);
openimsdk.on(
  CbEvents.OnFriendApplicationAccepted,
  handleApplicationChanged,
);
openimsdk.on(
  CbEvents.OnFriendApplicationRejected,
  handleApplicationChanged,
);
openimsdk.on(
  CbEvents.OnFriendApplicationDeleted,
  handleApplicationDeleted,
);

function removeFriendApplicationListeners() {
  openimsdk.off(
    CbEvents.OnFriendApplicationAdded,
    handleApplicationChanged,
  );
  openimsdk.off(
    CbEvents.OnFriendApplicationAccepted,
    handleApplicationChanged,
  );
  openimsdk.off(
    CbEvents.OnFriendApplicationRejected,
    handleApplicationChanged,
  );
  openimsdk.off(
    CbEvents.OnFriendApplicationDeleted,
    handleApplicationDeleted,
  );
}

按当前用户是否为 toUserID,将事件分流到收到或发出的列表。分页期间收到变化时重置分页;申请被同意后,新好友关系由分页获取好友列表归属的 OnFriendAdded 合并。