tencent cloud

文档反馈

Android & iOS & Mac

最后更新时间:2023-01-29 16:10:44

    功能描述

    在某些场景下,您可能需要对会话进行标记,例如 "会话标星"、"会话折叠"、"会话隐藏"、“会话标记未读”等,您可以调用以下接口实现。

    说明:

    • 该功能仅对旗舰版客户开放,购买 旗舰版 后可使用。
    • 该功能仅增强版 6.5.2803 及以上版本支持。

    会话标记

    标记会话

    您可以调用 markConversation (Android / iOS & Mac / Windows) 接口标记或者取消标记会话。

    注意:

    当用户标记了会话,SDK 只是简单记录了会话的标记值,并不会改变会话的底层逻辑,比如标记会话为 V2TIM_CONVERSATION_MARK_TYPE_UNREAD,会话的底层的未读数并不会发生改变。

    标记会话接口入参详解如下:

    属性 含义 说明
    conversationIDList 会话 ID 列表 一次标记最大支持 100 个会话
    markType 标记类型 会话标星、会话标记未读、会话折叠、会话隐藏等
    enableMark 标记/取消标记 标记或取消标记
    说明:

    SDK 提供了四个默认标记("会话标星"、"会话折叠"、"会话隐藏"、“会话标记未读”),如果已有标记不能满足您的需求,您可以自定义扩展标记,扩展标记需要满足以下两个条件:
    1、扩展标记值不能和已有的标记值冲突。
    2、扩展标记值必须是 0x1LL << n 的位移值(32 <= n < 64,即 n 必须大于等于 32 并且小于 64),比如扩展标记值 0x1LL << 32 表示 "iPhone 在线"。

    示例代码如下:

    List<String> conversationIDList = new ArrayList<>();
    conversationIDList.add("c2c_user1");
    // 标记类型
    long markType = V2TIMConversation.V2TIM_CONVERSATION_MARK_TYPE_STAR;
    // 扩展标记类型
    // long markType = 0x1L << 32;
    V2TIMManager.getConversationManager().markConversation(conversationIDList, markType, true, new V2TIMValueCallback<List<V2TIMConversationOperationResult>>() {
       @Override
       public void onSuccess(List<V2TIMConversationOperationResult> v2TIMConversationOperationResults) {
           // 标记会话成功
       }
        @Override
       public void onError(int code, String desc) {
           // 标记会话失败
       }
    });
    

    监听会话标记变更通知

    会话被标记或者取消标记后,会话 V2TIMConversationmarkList (Android / iOS & Mac / Windows) 字段会发生变更,您可以调用 addConversationListener (Android / iOS & Mac / Windows) 接口监听会话变更通知。

    示例代码如下:

    V2TIMConversationListener listener = new V2TIMConversationListener() {
       @Override
       public void onConversationChanged(List<V2TIMConversation> conversationList) {
           for (V2TIMConversation conversation : conversationList) {
               // 获取会话新的标记信息
               List<Long> markList = conversation.getMarkList();
           }
       }
    };
    V2TIMManager.getConversationManager().addConversationListener(listener);
    

    拉取指定标记会话

    您可以调用 getConversationListByFilter (Android / iOS & Mac / Windows) 接口拉取指定标记会话。

    示例代码如下:

    V2TIMConversationListFilter filter = new V2TIMConversationListFilter();
    filter.setMarkType(V2TIMConversation.V2TIM_CONVERSATION_MARK_TYPE_STAR);
    filter.setCount(50);
    filter.setNextSeq(0);
    V2TIMManager.getConversationManager().getConversationListByFilter(filter, new V2TIMValueCallback<V2TIMConversationResult>() {
       @Override
       public void onSuccess(V2TIMConversationResult v2TIMConversationResult) {
           // 获取会话列表成功
       }
        @Override
       public void onError(int code, String desc) {
           // 获取会话列表失败
       }
    });
    

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持