iOS

最近更新时间:2025-08-21 14:51:02

我的收藏
TUIKit 中的 TUISearch 实现了本地搜索,支持搜索本地存储的聊天记录、联系人、群聊等。搜索可以帮助用户从纷繁的信息中快速找到目标,也可作为运营工具,增加相关内容的引导,简洁高效。
注意:
“本地搜索”为 IM 旗舰版或企业版功能,购买旗舰版或企业版套餐包 后可使用,详情请参见 价格说明

功能展示

搜索接口的界面分为多个部分,第一部分是搜索好友,第二部分是搜索群组、群成员,第三部分是搜索消息且按照会话分组。 您可通过 下载安装应用 即刻体验,效果如下:


接入指引

以下步骤将向您演示如何接入 TUISearch 组件。

购买套餐包

集成 TUISearch

在 Podfile 文件中添加以下内容:
// 集成 TUISearch 组件
pod 'TUISearch'
添加后执行 pod instal

登录 TUIKit

您需要调用 TUICoreTUILogin 登录 TUIKit。登录接口内部会默认初始化,不需要额外调用初始化。
Swift
Objective-C
TUILogin.login(SDKAppID, userID: userID, userSig: userSig) {
// 登录成功
print("login succeeded")
} fail: { code, desc in
// 登录失败
print("login failed, \\(code): \\(desc)")
}
[TUILogin login:SDKAPPID userID:userID userSig:userSig succ:^{
// 登录成功
} fail:^(int code, NSString *msg) {
// 登录失败
}];

启动搜索界面

如果您集成了 TUIConversation 和 TUISearch 组件,此时不需要额外处理,searchBar 默认展示在会话列表的上方。 如果您仅集成 TUISearch,此时可以直接初始化 TUISearchBar 并将其添加到自己的视图上即可。 TUISearchBar 内部封装了搜索的 UI 逻辑和界面,添加 TUISearchBar 后,点击即可触发搜索。
示例代码如下:
Swift
Objective-C
// 初始化
let searchBar = TUISearchBar()
// self.containerView 是您自己的视图
self.containerView.addSubview(searchBar)
// 初始化
TUISearchBar *searchBar = [[TUISearchBar alloc] init];
// self.containerView 是您自己的视图
[self.containerView addSubview:searchBar];

常见问题

如何搜索自定义消息?

您需要使用接口 createCustomMessage (byte[] data, String description, byte[] extension) 来创建并发送自定义消息,把需要搜索的文本放到 description 参数中。
如果您使用接口 createCustomMessage (byte[] data) 创建自定义消息,本地保存的是二进制数据流,无法被搜索到。
如果您配置了离线推送功能,参数 description 设置后,自定义消息也会有离线推送且通知栏展示该参数内容。
如果不需要离线推送可以用发消息接口 sendMessage 的参数 V2TIMOfflinePushInfo 中的 disablePush 来控制。
如果推送的通知栏内容不想展示为被搜索的文本,可以用参数 V2TIMOfflinePushInfo 中的 setDesc 来另外设置推送内容。

如何搜索富媒体消息?

富媒体消息包含文件、图片、语音、视频消息。
对于文件消息,界面通常显示文件名,因此创建时可以设置 fileName 参数,作为被搜索的内容,如果 fileName 不设置则会从 filePath 提取文件名,并且都会保存到本地和服务器。
而对于图片、语音、视频消息,界面通常显示缩略图或时长,可以指定消息类型做分类搜索,但不能通过关键字搜索。