圈组消息删除
更新时间: 2024/03/12 10:30:20
NIM SDK 的nim_qchat::Message
类提供方法支持在发送消息后删除消息。
消息发送方和拥有删除他人消息权限(kPermissionDeleteMemberMessage
)的频道成员都可删除消息。
前提条件
- 已开通圈组功能。
- 已完成圈组初始化。
实现流程
API 调用时序
具体流程
本节仅对上图中标为橙色的流程进行说明,其他流程请参考相关文档。例如:
-
注册回调函数并登录。
- 发送方在登录圈组前,注册
RegUpdatedCb
消息更新回调函数。 - 接收方在登录圈组前,注册
RegRecvCb
消息接收回调函数和RegUpdatedCb
消息更新回调函数。
注册回调函数的示例代码如下:
注册消息接收回调QChatRegRecvMsgCbParam reg_receive_message_cb_param; reg_receive_message_cb_param.cb = [this](const QChatRecvMsgResp& resp) { if (resp.res_code != NIMResCode::kNIMResSuccess) { // error handling return; } // process response // ... }; Message::RegRecvCb(reg_receive_message_cb_param);
注册消息更新回调QChatRegMsgUpdatedCbParam reg_msg_updated_cb_param; reg_msg_updated_cb_param.cb = [this](const QChatMsgUpdatedResp& resp) { if (resp.res_code != NIMResCode::kNIMResSuccess) { // error handling return; } // process response // ... }; Message::RegUpdatedCb(reg_msg_updated_cb_param);
- 发送方在登录圈组前,注册
-
接收方在收到消息后,调用
Delete
方法删除消息。删除未读消息将影响未读数。
示例代码如下:
QChatDeleteMessageParam param; param.id_info.server_id = 123456; param.id_info.channel_id = 123456; param.timestamp = 123456; param.msg_server_id = 123456; param.update_info.postscript = "postscript"; param.update_info.extension = "extension"; param.update_info.push_content = "push content"; param.update_info.push_payload = "push payload"; param.cb = [this](const QChatUpdateMsgResp& resp) { if (resp.res_code != NIMResCode::kNIMResSuccess) { // error handling return; } // process response // ... }; Message::Delete(param);
-
RegUpdatedCb
回调触发,将消息删除结果投递至接收方和发送方。
此文档是否对你有帮助?