searchFriends
功能介绍
说明
在自己的好友列表中通过关键词搜索。
注意
(1)至少需指定一个搜索域;
(2)多个域之间是或的关系。
- iOS
- Android
- Flutter
- uni-app
- Browser/Electron/MiniProgram
- 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();
// use in mini program
// import { OpenIMSDK } from 'open-im-sdk';
// const IMSDK = new OpenIMSDK();
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,
});