跳到主要内容

清除消息未读状态

超级群业务可在多个客户端之间同步消息阅读状态。

同步消息已读状态

调用同步已读状态接口会同时清除本地与服务端记录的消息的未读状态,同时服务端会将最新状态同步给同一用户账号的其他客户端。

  • 如果指定了频道 ID(channelId),则标记该频道所有消息为全部已读,并同步其他客户端。
  • 如果频道 ID 为空,则标记该超级群会话下所有不属于任何频道的消息为全部已读,并同步其他客户端。
提示

超级群暂不支持按时间戳同步已读状态。调用 syncUltraGroupReadStatus 会按指定参数的要求标记全部消息为已读。时间戳参数(timestamp)未使用,可传入任意数字。

方法

Future<int> syncUltraGroupReadStatus(String targetId, String? channelId, int timestamp, {IRCIMIWSyncUltraGroupReadStatusCallback? callback});

参数说明

参数名参数类型描述
targetIdString会话 ID
channelIdString频道 ID,仅支持超级群使用。
timestampint已读时间
callbackIRCIMIWSyncUltraGroupReadStatusCallback事件回调。SDK 从 5.3.1 版本开始支持 callback 方式回调。从 5.4.0 版本废弃该接口的其他回调方式。如果传入了 callback 参数,仅触发 callback 回调。

返回值

返回值描述
Future<int>当次接口操作的状态码。0 代表调用成功 具体结果需要实现接口回调,非 0 代表当前接口调用操作失败,不会触发接口回调,详细错误参考错误码

代码示例

IRCIMIWSyncUltraGroupReadStatusCallback? callback = IRCIMIWSyncUltraGroupReadStatusCallback(onUltraGroupReadStatusSynced: (int? code) {
//...
});

int? ret = await engine?.syncUltraGroupReadStatus(targetId, channelId, timestamp, callback:callback);

回调方法

  • onUltraGroupReadStatusSynced
Function(int? code, String? targetId, String? channelId, int? timestamp)? onUltraGroupReadStatusSynced;

参数说明

参数名参数类型描述
codeint接口回调的状态码,0 代表成功,非 0 代表出现异常
targetIdString会话 ID
channelIdString频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
timestampint已读时间

代码示例

engine?.onUltraGroupReadStatusSynced = (int? code, String? targetId, String? channelId, int? timestamp) {
//...
};

监听其他端同步的消息未读状态

当接收到其他端同步的未读状态时,会回调此方法

方法

Function(RCIMIWConversationType? type, String? targetId, int? timestamp)? onConversationReadStatusSyncMessageReceived;

参数说明

参数名参数类型描述
typeRCIMIWConversationType会话类型
targetIdString会话 ID
timestampint时间戳

代码示例

engine?.onConversationReadStatusSyncMessageReceived = (RCIMIWConversationType? type, String? targetId, int? timestamp) {
//...
};