searchFriends
功能介绍
说明
在自己的好友列表中通过关键词搜索。
注意
(1)至少需指定一个搜索域;
(2)多个域之间是或的关系。
- iOS
- Android
- Flutter
- uni-app
- Browser/Electron
- React-Native
- Unity
函数原型
Future<List<SearchFriendsInfo>> searchFriends({
List<String> keywordList = const [],
bool isSearchUserID = false,
bool isSearchNickname = false,
bool isSearchRemark = false,
String? operationID,
})
输入参数
| 参数名称 | 参数类型 | 是否必填 | 描述 |
|---|---|---|---|
| keywordList | List<String> | 是 | 搜索关键词,目前仅支持一个关键词搜索,不能为空 |
| isSearchUserID | bool | 是 | 是否以关键词搜索 UserID |
| isSearchNickname | bool | 是 | 是否以关键词搜索昵称,默认 false |
| isSearchRemark | bool | 是 | 是否以关键词搜索备注,默认 false |
返回结果
| 参数名称 | 参数类型 | 描述 |
|---|---|---|
| ~ | List<SearchFriendInfo> | 成功返回 |
SearchFriendInfo
| 字段名称 | 字段类型 | 描述 |
|---|---|---|
| ownerUserID | String | 当前登录用户 ID |
| friendUserID | String | 好友 ID |
| nickname | String | 好友的昵称 |
| faceURL | String | 好友头像URL |
| remark | String | 好友备注 |
| createTime | int | 成为好友时间 |
| addSource | int | 成为好友的方式 |
| operatorUserID | String | 使双方成为好友的用户 ID |
| attachedInfo | String | 暂未使用 |
| ex | String | 扩展字段 |
| relationship | int | 0为黑名单,1为好友 |
代码示例
List<SearchFriendsInfo> list= await OpenIM.iMManager.friendshipManager.searchFriends(
keywordList: ['lucy'],
isSearchNickname: true,
isSearchRemark: true,
isSearchUserID: false,
);
// todo
函数原型
- (void)searchFriends:(OIMSearchFriendsParam *)searchParam
onSuccess:(nullable OIMSearchUsersInfoCallback)onSuccess
onFailure:(nullable OIMFailureCallback)onFailure;
输入参数
| 参数名称 | 参数类型 | 是否必填 | 描述 |
|---|---|---|---|
| OIMSearchFriendsParam.keywordList | NSArray<NSString *> | 搜索关键词,目前仅支持一个关键词搜索,不能为空 | |
| OIMSearchFriendsParam.isSearchUserID | BOOL | 是否以关键词搜索 UserID | |
| OIMSearchFriendsParam.isSearchNickname | BOOL | 是否以关键词搜索昵称,默认 false | |
| OIMSearchFriendsParam.isSearchRemark | BOOL | 是否以关键词搜索备注,默认 false |
返回结果
| 参数名称 | 参数类型 | 描述 |
|---|---|---|
| onSuccess | NSArray< OIMSearchFriendsInfo * > | 成功返回 |
| onFailure | OIMFailureCallback | 失败返回 |
OIMSearchFriendsInfo
| 字段名称 | 字段类型 | 描述 |
|---|---|---|
| ownerUserID | NSString | 当前登录用户 ID |
| friendUserID | NSString | 好友 ID |
| nickname | NSString | 好友的昵称 |
| faceURL | NSString | 好友头像URL |
| remark | NSString | 好友备注 |
| createTime | NSInteger | 成为好友时间 |
| addSource | NSInteger | 成为好友的方式 |
| operatorUserID | NSString | 使双方成为好友的用户 ID |
| attachedInfo | NSString | 暂未使用 |
| ex | NSString | 扩展字段 |
| relationship | OIMRelationship | 0为黑名单,1为好友 |
代码示例
OIMSearchFriendsParam *param = [OIMSearchFriendsParam new];
param.keywordList = @[];
param.isSearchRemark = YES;
param.isSearchUserID = YES;
[OIMManager.manager searchFriends:param
onSuccess:^(NSArray<OIMSearchFriendsInfo *> * _Nullable usersInfo) {
} onFailure:^(NSInteger code, NSString * _Nullable msg) {
}];
函数原型
public void searchFriends(OnBase<List<FriendInfo>> callBack, List<String> keywordList, boolean isSearchUserID, boolean isSearchNickname, boolean isSearchRemark)
输入参数
| 参数名称 | 参数类型 | 是否必填 | 描述 |
|---|---|---|---|
| callBack | OnBase<List<FriendInfo>> | 是 | 回调接口 |
| keywordList | List<String> | 是 | 搜索关键词,目前仅支持一个关键词搜索,不能为空 |
| isSearchUserID | Boolean | 是 | 是否以关键词搜索 UserID |
| isSearchNickname | Boolean | 是 | 是否以关键词搜索昵称,默认 false |
| isSearchRemark | Boolean | 是 | 是否以关键词搜索备注,默认 false |
返回结果
代码示例
OpenIMClient.getInstance().friendshipManager.searchFriends(new OnBase<List<FriendInfo>>(){…},uid,keywordList,isSearchUserID,isSearchNickname,isSearchRemark)
函数原型
enum Relationship {
Black,
Friend
}
type SearchedFriendsInfo = FriendUserItem & {
relationship: Relationship;
};
IMSDK.searchFriends({
keywordList: string[];
isSearchUserID: boolean;
isSearchNickname: boolean;
isSearchRemark: boolean;
}, operationID?: string): Promise<WsResponse<SearchedFriendsInfo[]>>
输入参数
| 参数名称 | 参数类型 | 是否必填 | 描述 |
|---|---|---|---|
| keywordList | string[] | 是 | 搜索关键词,目前仅支持一个关键词搜索,不能为空 |
| isSearchUserID | boolean | 是 | 是否以关键词搜索 userID |
| isSearchNickname | boolean | 是 | 是否以关键词搜索昵称 |
| isSearchRemark | boolean | 是 | 是否以关键词搜索备注 |
返回结果
| 参数名称 | 参数类型 | 描述 |
|---|---|---|
| Promise.then() | Promise<WsResponse<SearchedFriendsInfo[]>> | 搜索到的好友信息列表 |
| Promise.catch() | Promise<WsResponse> | 调用失败回调 |
代码示例
import { getSDK } from '@openim/wasm-client-sdk';
const IMSDK = getSDK();
// use in electron with ffi
// import { getWithRenderProcess } from '@openim/electron-client-sdk/lib/render';
// const { instance: IMSDK } = getWithRenderProcess();
IMSDK.searchFriends({
keywordList: ['nickname'];
isSearchUserID: false,
isSearchNickname: true,
isSearchRemark: true,
})
.then(({data}) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
enum Relationship {
Black,
Friend
}
type SearchedFriendsInfo = FriendUserItem & {
relationship: Relationship;
};
IMSDK.asyncApi('searchFriends', operationID: string, {
keywordList: string[];
isSearchUserID: boolean;
isSearchNickname: boolean;
isSearchRemark: boolean;
}): Promise<SearchedFriendsInfo[]>
输入参数
| 参数名称 | 参数类型 | 是否必填 | 描述 |
|---|---|---|---|
| operationID | string | 是 | 操作 ID,用于定位问题,保持唯一,建议用当前时间和随机数 |
| keywordList | string[] | 是 | 搜索关键词,目前仅支持一个关键词搜索,不能为空 |
| isSearchUserID | boolean | 是 | 是否以关键词搜索 userID |
| isSearchNickname | boolean | 是 | 是否以关键词搜索昵称 |
| isSearchRemark | boolean | 是 | 是否以关键词搜索备注 |
返回结果
通过
openim-uniapp-polyfill包将函数 Promise 化,调用时需要使用then和catch判断并处理成功和失败回调。
| 参数名称 | 参数类型 | 描述 |
|---|---|---|
| Promise.then() | Promise<SearchedFriendsInfo[]> | 搜索到的好友信息列表 |
| Promise.catch() | Promise<CatchResponse> | 调用失败回调 |
代码示例
import IMSDK from 'openim-uniapp-polyfill';
IMSDK.asyncApi('searchFriends', IMSDK.uuid(), {
keywordList: ['nickname'];
isSearchUserID: false,
isSearchNickname: true,
isSearchRemark: true,
})
.then((data) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
enum Relationship {
Black,
Friend
}
type SearchedFriendsInfo = FriendUserItem & {
relationship: Relationship;
};
OpenIMSDKRN.searchFriends({
keywordList: string[];
isSearchUserID: boolean;
isSearchNickname: boolean;
isSearchRemark: boolean;
}, operationID: string): Promise<SearchedFriendsInfo[]>
输入参数
| 参数名称 | 参数类型 | 是否必填 | 描述 |
|---|---|---|---|
| keywordList | string[] | 是 | 搜索关键词,目前仅支持一个关键词搜索,不能为空 |
| isSearchUserID | boolean | 是 | 是否以关键词搜索 userID |
| isSearchNickname | boolean | 是 | 是否以关键词搜索昵称 |
| isSearchRemark | boolean | 是 | 是否以关键词搜索备注 |
| operationID | string | 是 | 操作 ID,用于定位问题,保持唯一,建议用当前时间和随机数 |
返回结果
| 参数名称 | 参数类型 | 描述 |
|---|---|---|
| Promise.then() | Promise<SearchedFriendsInfo[]> | 搜索到的好友信息列表 |
| Promise.catch() | Promise<CatchResponse> | 调用失败回调 |
代码示例
import OpenIMSDKRN from "open-im-sdk-rn";
OpenIMSDKRN.searchFriends({
keywordList: ['nickname'];
isSearchUserID: false,
isSearchNickname: true,
isSearchRemark: true,
}, 'operationID')
.then((data) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
public static void SearchFriends(OnBase<List<SearchFriendItem>> cb, SearchFriendsParam searchParam)
输入参数
| 参数名称 | 参数类型 | 是否必填 | 描述 |
|---|---|---|---|
| cb | OnBase<List<FriendInfo>> | 是 | 回调 |
| searchParam | SearchFriendsParam | 是 | 搜索参数设置 |
返回结果
代码示例
IMSDK.SearchFriends((list,errCode,errMsg)=>{
},new SearchFriendsParam(){
KeywordList = {"keyword"},
IsSearchUserID = true,
IsSearchNickname = false,
IsSearchRemark = false,
});