消息已读回执指的是,发送端往会话中发送消息,如果他想知道哪些人读过/还没读过这条消息,那么他就需要开启消息已读回执功能。
开启后,发送端发送消息时可以设置消息是否需要已读回执。如果设置为“需要”,接收端查看消息后才会发送自己已读给发送端。
单聊和群聊均支持消息已读回执功能,操作步骤一致。
说明:
- 该功能需要购买旗舰版。
如果是群消息已读回执,需要先在 即时通信 IM 控制台 >功能配置>登录与消息>群已读消息回执配置 中设置支持已读回执消息的群类型。
示例代码如下:
var message = new Message
{
message_conv_id = conv_id,
message_conv_type = TIMConvType.kTIMConv_Group,
message_cloud_custom_str = "unity local custom data",
message_elem_array = new List<Elem>{new Elem
{
elem_type = TIMElemType.kTIMElem_Text,
text_elem_content = Input.text
}},
message_need_read_receipt = true,
};
StringBuilder messageId = new StringBuilder(128);
TIMResult res = TencentIMSDK.MsgSendMessage(conv_id, TIMConvType.kTIMConv_C2C, message, messageId, (int code, string desc, Message data, string user_data) => {
// 处理回调逻辑
});
接收端收到消息后,可以通过消息对象 Message
的 message_need_read_receipt
(Details) 字段判断消息是否需要已读回执,如果需要已读回执,当用户查看消息后,调用 MsgSendMessageReadReceipts
(Details) 接口发送消息已读回执。
示例代码如下:
TIMResult res = TencentIMSDK.MsgSendMessageReadReceipts(msg_array, (int code, string desc, string user_data) => {
// 处理回调逻辑
});
接收端发送消息已读回执后,发送端可以通过 SetMsgReadedReceiptCallback
(Details) 回调监听消息已读回执通知,在通知中更新 UI,例如更新为 “2 人已读”。
示例代码如下:
TIMResult res = TencentIMSDK.SetMsgReadedReceiptCallback(msg_array, (List<MessageReceipt> message_receipt, string user_data) => {
// 处理回调逻辑
});
发送端从其他界面进入消息列表后,先拉取历史消息,再调用 MsgGetMessageReadReceipts
(Details) 接口拉取消息已读回执信息。
示例代码如下:
TIMResult res = TencentIMSDK.MsgGetMessageReadReceipts(msg_array, (int code, string desc, List<MessageReceipt> message_receipt, string user_data) => {
// 处理回调逻辑
});
发送端在需要查看群消息已读或未读成员列表时,可以调用 GetMsgGroupMessageReadMemberList
(Details) 接口分页拉取消息已读或未读群成员列表。
TIMResult res = TencentIMSDK.MsgGetMessageReadReceipts(message, TIMGroupMessageReadMembersFilter.TIM_GROUP_MESSAGE_READ_MEMBERS_FILTER_READ, next_seq, 20, (List<GroupMemberInfo> json_group_member_array, ulong next_seq, bool is_finished, string user_data) => {
// 处理回调逻辑
});
本页内容是否解决了您的问题?