Browse SDKs · HarmonyOS
Platform
SDKsHarmonyOSEnterprise

Retrieve received friend applications

Paginate incoming friend applications received by the current account and listen for application lifecycle events.

Copy

Pass send: false to query incoming friend requests received by the signed-in user. Passing an empty array in handleResults retrieves requests across all review states:

Code example

import sdk, {
  EventOnFriendApplicationAcceptedData,
  EventOnFriendApplicationAddedData,
  EventOnFriendApplicationDeletedData,
  EventOnFriendApplicationRejectedData,
  GetFriendApplicationReq,
  GetFriendApplicationResp,
  HandleResult,
  OpenIMSDKEvent,
} from '@openimsdk/imsdk';

const request: GetFriendApplicationReq = {
  send: false,
  handleResults: [HandleResult.ResultDefault],
  pagination: {
    pageNumber: 1,
    showNumber: 20,
  },
};
const response: GetFriendApplicationResp = await sdk.getFriendApplication(request);
replaceReceivedApplications(response.applications);

const handleAdded = (data: EventOnFriendApplicationAddedData): void => {
  mergeFriendApplication(data.application);
};
const handleAccepted = (data: EventOnFriendApplicationAcceptedData): void => {
  mergeFriendApplication(data.application);
};
const handleRejected = (data: EventOnFriendApplicationRejectedData): void => {
  mergeFriendApplication(data.application);
};
const handleDeleted = (data: EventOnFriendApplicationDeletedData): void => {
  removeFriendApplication(data.application.fromUserID, data.application.toUserID);
};

const unsubscribeAdded = sdk.on(OpenIMSDKEvent.EventOnFriendApplicationAdded, handleAdded);
const unsubscribeAccepted = sdk.on(OpenIMSDKEvent.EventOnFriendApplicationAccepted, handleAccepted);
const unsubscribeRejected = sdk.on(OpenIMSDKEvent.EventOnFriendApplicationRejected, handleRejected);
const unsubscribeDeleted = sdk.on(OpenIMSDKEvent.EventOnFriendApplicationDeleted, handleDeleted);

export function removeReceivedFriendApplicationListeners(): void {
  unsubscribeAdded();
  unsubscribeAccepted();
  unsubscribeRejected();
  unsubscribeDeleted();
}

Parameters

ParameterTypeRequiredDescription
sendbooleanYesSet to false to query incoming applications received from other users.
handleResultsHandleResult[]YesFilter by review status: ResultDefault (pending), ResultAccept (accepted), or ResultDecline (declined). Pass [] for all.
pagination.pageNumbernumberYesPage index, starting from 1.
pagination.showNumbernumberYesNumber of application records to fetch per page.

Return value

Returns a Promise that resolves to a GetFriendApplicationResp object containing applications: IMFriendApplication[]:

PropertyTypeDescription
fromUserIDstringApplicant user ID.
toUserIDstringRecipient user ID (current user).
handleResultHandleResultReview outcome status.
reqMsgstringApplication greeting or verification message.
createTimenumberApplication creation timestamp in Unix milliseconds.

State changes after the call

Identify unique application records using the composite key fromUserID:toUserID. If application events arrive while paging, reset the pagination offset to page 1 and reload. When an application is accepted, the resulting friendship is synchronized separately through friend events; see Paginate friend list. Clean up listeners using removeReceivedFriendApplicationListeners() when unmounting components or signing out.