tencent cloud

文档反馈

最后更新时间:2022-09-26 14:29:38

    功能描述

    用户的会话列表中一般会有若干个会话,如果某个会话收到了新消息,通常需要在列表的 cell 中以小红点或者数字角标的方式,向用户展示该会话的未读消息数,提醒用户尚未阅读。
    用户点击进入该会话后退回到会话列表,未读消息数被清空,小红点消失。部分应用还会统计所有会话的未读消息总数之和,将其展示在会话列表的底部 tab 上。

    清空会话未读消息数

    接口

    tim.setMessageRead(options);

    参数 options 为 Object 类型,包含的属性值如下:

    参数

    Name Type Default Description
    conversationID String 会话 ID。会话 ID 组成方式:
  • C2C${userID}(单聊)
  • GROUP{groupID}(群聊)
  • @TIM#SYSTEM(系统通知会话)
  • GROUP${topicID}(话题) v2.19.1 起支持
  • 返回值

    Promise 对象。

    示例

    // 将某会话下所有未读消息已读上报
    let promise = tim.setMessageRead({conversationID: 'C2Cexample'});
    promise.then(function(imResponse) {
    // 已读上报成功,指定 ID 的会话的 unreadCount 属性值被置为0
    }).catch(function(imError) {
    // 已读上报失败
    console.warn('setMessageRead error:', imError);
    });

    清空所有会话未读消息数

    注意:

    v2.16.0起支持。

    tim.setAllMessageRead(options);

    参数 options 为 Object 类型,包含的属性值如下:

    参数

    Name Type Description
    scope String | undefined 设置消息处理的范围。详细类型如下:
  • TIM.TYPES.READ_ALL_C2C_MSG (设置所有 C2C 会话未读消息为已读)
  • TIM.TYPES.READ_ALL_GROUP_MSG (设置所有群会话未读消息为已读)
  • TIM.TYPES.READ_ALL_MSG (默认值,设置所有 C2C 和群会话未读消息为已读)
  • 返回值

    Promise 对象。

    示例

    // 将所有会话的未读消息全部设置为已读
    let promise = tim.setAllMessageRead(); // 等同于 tim.setAllMessageRead({scope: TIM.TYPES.READ_ALL_MSG})
    promise.then(function(imResponse) {
    // 已读上报成功,所有会话的 unreadCount 属性值被置为0
    }).catch(function(imError) {
    // 已读上报失败
    console.warn('setAllMessageRead error:', imError);
    });
    // 将所有 C2C 会话的未读消息全部设置为已读
    let promise = tim.setAllMessageRead({scope: TIM.TYPES.READ_ALL_C2C_MSG});
    promise.then(function(imResponse) {
    // 已读上报成功,所有 C2C 会话的 unreadCount 属性值被置为0
    }).catch(function(imError) {
    // 已读上报失败
    console.warn('setAllMessageRead error:', imError);
    });
    // 将所有群会话的未读消息全部设置为已读
    let promise = tim.setAllMessageRead({scope: TIM.TYPES.READ_ALL_GROUP_MSG});
    promise.then(function(imResponse) {
    // 已读上报成功,所有 C2C 会话的 unreadCount 属性值被置为0
    }).catch(function(imError) {
    // 已读上报失败
    console.warn('setAllMessageRead error:', imError);
    });

    发送不计入会话未读数的消息

    正常情况下,无论是发送单聊消息还是群消息,都会计入未读消息数(会话对象 Conversation 的 unreadCount 属性,表示一个会话的未读消息数)。
    当您希望发送一些不计入未读计数的消息时,例如提示类或者控制类的消息,可以参考以下示例代码。

    示例

    // v2.16.0起支持消息控制选项
    tim.sendMessage(message, {
    messageControlInfo: {
    excludedFromUnreadCount: true, // 消息不更新会话 unreadCount(消息存漫游)
    excludedFromLastMessage: true // 消息不更新会话 lastMessage(消息存漫游)
    }
    });
    联系我们

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

    技术支持

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

    7x24 电话支持