• UIKit
  • SDK
  • 服务端 API
Chat/
UIKit/
Web/
功能/
UIKit
  • 界面库介绍
  • 快速集成
    • TUIKit
      • React
      • Vue
    • TUIChat
      • React
      • Vue
  • 功能
    • 表情回应
    • 已读回执
    • 对方正在输入
    • 用户在线状态
    • 消息搜索
    • 消息引用
    • 语音转文字
    • 文本消息翻译
  • 主题
    • 设置界面风格
      • Web
      • Mobile
  • 自定义
    • 自定义消息
    • 自定义表情
  • 本地化
  • 开发指引
  • 控制台指南
    • 创建和升级应用
    • 基本配置
    • 功能配置
    • 账号管理
    • 群组管理
    • 回调配置
  • 产品介绍
    • 消息管理
      • 单聊消息
      • 消息存储
      • 离线推送
      • 群消息
      • 消息格式
    • 账号系统
      • 登陆验证
      • 在线状态管理
    • 群相关
      • 群组系统
      • 群组管理
    • 用户资料和关系链
      • 资料管理
      • 关系链管理
  • 购买指南
    • 计费概述
    • 价格中心
  • 错误码

已读回执

功能描述

开启“消息已读回执”功能后,TUIChat 组件会监听消息的滚动,当未读消息出现在接收方聊天窗口的可视区域内时,将自动触发向发送方发送已读回执,精确监控每一条消息的阅读状态。
注意
TUIKit 从 v2.0.0 版本开始支持群聊和单聊的消息已读回执功能,表情回应功能仅进阶版套餐支持,请购买进阶版后使用。

效果展示





如何开启消息已读回执

设置支持已读回执的群类型

如果是群消息已读回执,需要先在 Chat Console > Chat > Configuration > Group Configuration > Read receipts for group messages 中设置支持已读回执消息的群类型。
注意:
直播群(AVChatRoom)或社群(Community)不支持已读回执功能。

用户侧控制开启\关闭已读回执

说明:
在控制台进行群聊的已读回执配置后,已经默认开启已读回执能力,如无特殊需求,无需在用户侧操作开关。
在用户侧也支持手动开启\关闭已读回执能力(该项默认是开启的),但如果关闭,他人无法看到自己是否已读(即不会发送已读回执),同时自己也看不到他人是否阅读自己的消息(不展示自己发送消息的已读状态)。
在登录成功后,利用 TUIUserService.switchMessageReadStatus(isDisplay: boolean) Api 来控制该开关。
import { TUIUserService } from "@tencentcloud/chat-uikit-engine";

TUIUserService.switchMessageReadStatus(true); // 开启
TUIUserService.switchMessageReadStatus(false); // 关闭

扩展资料

说明:
以下内容仅为辅助阅读资料,已读回执功能已在旗舰版 TUIKit 中包含,不需要用户手动实现。

群聊和单聊的已读回执规则

开启已读回执功能后,发送的 MessageneedReadReceipt 字段默认为 true ,当消息处于对方消息列表的可视位置时,对方会发送已读回执。但要注意的是:单聊和群聊在开启已读回执功能前后的规则有所不同。

群聊的已读回执规则

1. 群聊开启已读回执之前:
不展示已读状态。
2. 群聊开启已读回执之后:
根据 MessagereadReceiptInfo 获得已读数和未读数。
已读数为0:展示“未读”。
未读数为0:展示“全部已读”。
否则展示“x 人已读”,其中 x 为已读数。

单聊的已读回执规则

1. 单聊开启已读回执之前:
展示已读状态,但属于全量已读,当用户点击进入会话时,无论是否看到消息,所有未读消息会全部置为已读。根据 MessageisPeerRead 判断消息是已读或未读。
2. 单聊开启已读回执之后:
根据单条消息 MessagereadReceiptInfo.isReceiptPeerRead 字段(布尔值)获取是否已读,从而判断处于“已读”、“未读”中的一种状态。

常见问题

1. Error: 套餐包不支持该接口的使用,请升级到旗舰版套餐

“群消息已读回执”功能仅旗舰版套餐支持,该报错信息表示您当前的套餐包不支持此能力,请开通旗舰版进行体验。

2. 如何关闭已读功能?

请参考本文档 2.2 节的内容,通过 TUIUserService.switchMessageReadStatus(isDisplay: boolean) 关闭已读功能。
import { TUIUserService } from "@tencentcloud/chat-uikit-engine";

TUIUserService.switchMessageReadStatus(false);

交流与反馈

加入Telegram 技术交流群组WhatsApp 交流群,享有专业工程师的支持,解决您的难题。