监听聊天室事件通知
提示
SDK 从 5.18.0 版本开始支持监听聊天室事件通知。
应用程序可以监听当前聊天室中成员禁言、封禁相关的通知,以及当前用户在其他端加入、退出聊天室相关的通知。
聊天室事件监听器直接在 RCIMIWEngine 实例上设置。
Dart
// 假设您已经创建并保存了引擎实例
RCIMIWEngine? engine = yourEngineInstance; // 替换为您的引擎实例
// 多端登录聊天室同步事件回调
engine?.onChatRoomNotifyMultiLoginSync = (RCIMIWChatRoomSyncEvent? event) {
// 处理多端登录同步事件
if (event != null) {
print('聊天室多端同步事件: chatroomId=${event.chatroomId}, status=${event.status}, reason=${event.reason}');
}
};
// 聊天室成员封禁/解封事件回调
engine?.onChatRoomNotifyBlock = (RCIMIWChatRoomMemberBlockEvent? event) {
// 处理聊天室成员封禁/解封事件
if (event != null) {
print('聊天室成员封禁事件: chatroomId=${event.chatroomId}, type=${event.operateType}');
}
};
// 聊天室成员禁言/解除禁言事件回调
engine?.onChatRoomNotifyBan = (RCIMIWChatRoomMemberBanEvent? event) {
// 处理聊天室成员禁言/解除禁言事件
if (event != null) {
print('聊天室成员禁言事件: chatroomId=${event.chatroomId}, banType=${event.banType}');
}
};
// 如果不再需要监听,可以将回调设置为 null
// engine?.onChatRoomNotifyMultiLoginSync = null;
// engine?.onChatRoomNotifyBlock = null;
// engine?.onChatRoomNotifyBan = null;
| 回调方法 | 触发时机 | 说明 |
|---|---|---|
| onChatRoomNotifyMultiLoginSync(RCIMIWChatRoomSyncEvent? event) | 在用户多端登录的情况下,在其他客户端加入、退出聊天室 | 接收在当前客户端上用户加入、退出聊天室的事件 |
| onChatRoomNotifyBlock(RCIMIWChatRoomMemberBlockEvent? event) | 用户所在聊天室中发生了封禁、解除封禁相关的事件 | 是否接收通知取决于调用服务端封禁、解封的相关 API 时是否指定了 needNotify 为 true。 |
| onChatRoomNotifyBan(RCIMIWChatRoomMemberBanEvent? event) | 用户所在聊天室中发生了禁言、解除禁言相关的事件 | 是否接收通知取决于调用服务端封禁、解封的相关 API 时是否指定了 needNotify 为 true。 |