腾讯云即时通信 IM SDK 5.4.666 增强版本于2021年6月3日正式发布了。从该版本开始,原来的精简版(smart)SDK 改名为增强版(plus) SDK,原来的标准版 SDK 改名为基础版 SDK。后续新功能只在增强版上开发,基础版只做例行维护,推荐您升级到增强版实现更多更强大的功能。

新版本更新特性:

  • 支持本地消息搜索、群&群成员搜索、好友搜索;

  • 支持清空会话中的消息并保留会话;

  • 相同平台下支持多个终端同时登录;

  • 发送消息时可以指定该消息是否更新会话的最后一条消息。

本地搜索功能

增强版 IM SDK 增加了本地搜索能力,可以实现下图类似微信的搜索功能。

好友搜索

好友搜索 searchFriends可以搜索本地用户资料,支持搜索 userID、nickName、remark 字段。

群搜索和群成员搜索

群搜索的效果是,如果群名称匹配到了关键字则列表中的该条目 title 会高亮群名称匹配的关键字;如果群名称没有匹配到但是群 ID 或者群成员匹配到了关键字,则列表中该条目的 title 显示群名称,subTitle 会高亮群 ID 或者群成员匹配的关键字。这里需要把

searchGroups 和 searchGroupMembers 组合起来使用

  • searchGroups 搜索本地群组资料 ;

  • searchGroupMembers 搜索本地群成员资料;

  • 合并两者的结果,根据需求高亮匹配到的字段。

消息搜索

在搜索框输入关键字可以调用

searchLocalMessages 搜索本地消息。

  • 支持全局消息搜索并按照会话分类;

  • 支持分页搜索;

  • 支持搜索指定会话中的消息。

聊天记录界面的展示通常分为如下图的几个场景:

| 图1:搜索聊天记录 |

| 图2:搜索更多聊天记录 |

| 图3:搜索指定会话的消息 |

集成方式

集成以上搜索功能有两个方案:

  • 方案一:对接 TUIKit 搜索源码,方便快捷,用户可以前往 github【1】 下载源码。
  • 方案二:
    对接 IM SDK 搜索接口,用户可以前往官网【2】查看接口使用说明。

清空会话中的消息并保留会话

该版本增加了 clearC2CHistoryMessage 和 clearGroupHistoryMessage 接口,与 deleteMessages 接口一次只能删除有限的30条消息不同的是,新接口可以清空会话中的所有消息并保留会话。效果如下:

相同平台下支持多个终端同时登录

该版本支持一个帐号在同一个平台可以登录多个设备。比如在车机场景中,用户在 Android 手机上登录,并且该用户也可以在车载平板电脑(Android 系统)登录,来达到两端数据互通的目的。使用方式也特别简单,只需要在控制台上选择同平台的终端登录的数量即可,如下图:

发送消息时可以指定该消息是否更新会话的最后一条消息

正常情况下,每发送或者接收一条消息,会话列表就会显示最新一条消息的内容。但是在一些比如抢红包的实际场景中,是不希望把“xxx抢了红包”这种消息展示到会话的最后一条中的。消息在发送之前可以设置 setExcludedFromLastMessage 来达到这种效果,通常这类消息也不希望统计到未读计数中的,可配合 setExcludedFromUnreadCount 接口一起使用。

发送端

// 创建消息对象V2TIMMessage message = V2TIMManager.getMessageManager().createCustomMessage("user_x抢了红包".getBytes());// 该消息不计入会话 lastMsgmessage.setExcludedFromLastMessage(true);// 该消息不计入会话未读数message.setExcludedFromUnreadCount(true);// 发送消息V2TIMManager.getMessageManager().sendMessage(message, null, groupID, V2TIMMessage.V2TIM_PRIORITY_DEFAULT, false, null, new V2TIMSendCallback<V2TIMMessage>() {    @Override    public void onError(int code, String desc) {        Log.i(TAG, "send fail");    }
    @Override    public void onSuccess(V2TIMMessage v2TIMMessage) {        Log.i(TAG, "send success");    }
    @Override    public void onProgress(int progress) {
    }});

接收端

在收到消息时即为上图效果,会话列表中不希望展示“xxx抢了红包”,更不希望有未读数出现,但是进入聊天界面希望能展示“xxx抢了红包”的消息。

【1】Github下载源码:https://github.com/tencentyun/TIMSDK;

【2】IM 文档接口使用说明:https://cloud.tencent.com/document/product/269/56936;

文章来源于腾讯云开发者社区,点击查看原文