一、功能描述
单聊和群聊均支持消息已读回执功能,操作步骤一致。
注意:说明:
注意:该功能需要购买旗舰版或企业版套餐包。
二、设置支持已读回执的群类型
如果是群消息已读回执,需要先在 即时通信 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(点击查看详情) 字段判断消息是否需要已读回执,如果需要已读回执,当用户查看消息后,调用 MsgSendMessageReadReceipts(点击查看详情) 接口发送消息已读回执。
示例代码如下:
TIMResult res = TencentIMSDK.MsgSendMessageReadReceipts(msg_array, (int code, string desc, string user_data) => { // 处理回调逻辑});
五、发送端监听消息已读回执通知
接收端发送消息已读回执后,发送端可以通过 SetMsgReadedReceiptCallback(点击查看详情) 回调监听消息已读回执通知,在通知中更新 UI,例如更新为 “2 人已读”。
示例代码如下:
TIMResult res = TencentIMSDK.SetMsgReadedReceiptCallback(msg_array, (List<MessageReceipt> message_receipt, string user_data) => { // 处理回调逻辑});
六、发送端主动拉取消息已读回执信息
发送端从其他界面进入消息列表后,先拉取历史消息,再调用 MsgGetMessageReadReceipts(点击查看详情) 接口拉取消息已读回执信息。
示例代码如下:
TIMResult res = TencentIMSDK.MsgGetMessageReadReceipts(msg_array, (int code, string desc, List<MessageReceipt> message_receipt, string user_data) => { // 处理回调逻辑});
七、发送端主动拉取群消息已读或未读成员列表
发送端在需要查看群消息已读或未读成员列表时,可以调用 GetMsgGroupMessageReadMemberList(点击查看详情) 接口分页拉取消息已读或未读群成员列表。
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) => { // 处理回调逻辑});