圈组消息删除
更新时间: 2024/03/07 11:45:33
NIM SDK 的QChatMessageService
类提供消息删除方法,支持在发送消息后删除消息。
消息发送方和拥有删除他人消息权限(deleteMsg
)的频道成员都可删除消息。
前提条件
- 已开通圈组功能。
- 已完成圈组初始化。
实现流程
API 调用时序
以下时序图可能因网络问题而显示异常。如显示异常,一般刷新当前页面即可正常显示。
具体流程
本节仅对上图中标为橙色的流程进行说明,其他流程请参考相关文档。例如:
- 服务器成员相关说明,可参见圈组服务器成员管理
- 权限相关说明,可参见身份组相关文档。
-
注册回调函数并登录。
- 发送方在登录圈组前,注册
onMessageDelete
消息删除事件回调,监听消息删除。 - 接收方在登录圈组前,注册
onReceiveMessage
消息接收回调和onMessageDelete
消息删除事件回调,分别监听消息接收和消息删除。
示例代码如下:
注册消息接收回调NimCore.instance.qChatObserver.onReceiveMessage.listen((event) { //message received });
注册消息删除事件回调NimCore.instance.qChatObserver.onMessageDelete.listen((event) { // message deleted });
- 发送方在登录圈组前,注册
-
接收方在收到消息后,调用
deleteMessage
方法删除消息。该方法入参结构
QChatDeleteMessageParam
必须传入更新操作通用参数、消息所属的服务器的 ID、消息所属的频道的 ID、消息发送时间以及消息服务端 ID。删除未读消息将影响未读数。
示例代码如下:
var paramDeleteMsg = QChatDeleteMessageParam(channelId: channelId, serverId: serverId, msgIdServer: msgIdServer, time: time, updateParam: updateParam); NimCore.instance.qChatMessageService.deleteMessage(paramDeleteMsg).then((value){ if (value.isSuccess) { //delete message success } });
-
onMessageDelete
回调触发,接收方和发送方通过该回调接收消息删除结果。
此文档是否对你有帮助?