You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter聊天应用使用ConnectyCube实现类WhatsApp用户搜索功能

ConnectyCube Flutter 全局搜索逻辑及用户列表搜索实现方案

示例代码运行逻辑拆解

你贴出的官方示例代码是ConnectyCube SDK提供的全局搜索接口的标准用法,运行逻辑如下:

  • 第一步构造GlobalSearchParams配置对象,用于限定搜索范围和返回规则,各字段作用:
    • limit:限制单次搜索返回的结果最大条数,示例中设为3即最多返回3条匹配结果
    • startDate、endDate:限定搜索的消息时间范围,示例中是搜索2020年1月1日到当前时间范围内的内容
    • dialogIds:限定仅在指定ID的会话中搜索,示例中仅在ID为5e3438c7ca8bf479f704560c的会话内搜索
  • 第二步调用异步方法searchText,传入搜索关键词和转换为map格式的搜索参数,SDK会自动向后端发起搜索请求
  • 请求成功后进入then回调,返回的globalSearchResult包含所有匹配的内容;请求失败进入catchError回调返回报错信息

类WhatsApp用户列表搜索实现方案

如果你的需求是搜索用户而非消息/会话,可对示例代码做如下改造:

核心实现代码

// 构造搜索参数,仅保留必要配置
GlobalSearchParams additionalParams = GlobalSearchParams();
additionalParams.limit = 20; // 可根据UI承载量调整返回用户数量上限

// 取输入框的实时内容作为搜索关键词
String searchKeyword = _inputController.text;
searchText(searchKeyword, additionalParams.getSearchParams())
    .then((globalSearchResult) {
      // 提取匹配的用户列表作为列表数据源
      List<CubeUser> matchedUserList = globalSearchResult.users;
      // 刷新列表UI即可展示匹配到的用户
    })
    .catchError((error) {
      // 自行处理搜索异常,比如网络错误、无权限等场景
    });

优化建议

  • 若要实现输入时实时搜索,可给TextField添加onChanged回调触发搜索,建议增加300~500ms的防抖逻辑,避免频繁请求导致接口限流
  • 如果需要仅搜索当前用户的好友,可在参数中新增过滤规则:additionalParams.params['isFriend'] = true
  • 若需要同时展示匹配的会话、消息,可从globalSearchResult.dialogs、globalSearchResult.messages中提取对应数据

内容的提问来源于stack exchange,提问作者Wasiq Hussain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:24:01