取消禁言
本文介绍如何取消禁言用户或取消全员禁言。
说明
注意,只有当前房间的创建者或者管理员,才能取消禁言用户;房间内其他人取消禁言无效。
API使用示例
取消指定用户禁言
iOS:
id<AIRBRoomChannelProtocol> room = [[AIRBRoomEngine sharedInstance] getRoomChannelWithRoomID:@"xxx"];
[self.room.chat cancelBanCommentWithUserID:userID onSuccess:^{
NSLog(@"cancelBanComment(%@) success.", userID);
} onFailure:^(NSString * _Nonnull errorMessage) {
NSLog(@"cancelBanComment(%@) failed.", userID);
}];
Android:
String userId = "111";
chatService.cancelBanComment(userId, new Callback<Void>() {
@Override
public void onSuccess(Void data) {
// 取消禁言成功
}
@Override
public void onError(String errorMsg) {
// 取消禁言失败
}
});
Web:
chatService.cancelBanComment(userId).then(() => { console.log('取消禁言成功') })
Windows:
auto room_ptr = alibaba::meta_space::MetaSpace::GetInstance()->GetRoomInstance(room_id);
std::shared_ptr<IChat> chat_plugin = std::dynamic_pointer_cast<IChat>(room_ptr->GetPlugin(PluginChat));
chat_plugin->CancelMuteUser("xxx");
取消全员禁言
iOS:
id<AIRBRoomChannelProtocol> room = [[AIRBRoomEngine sharedInstance] getRoomChannelWithRoomID:@"xxx"];
[self.room.chat banAllComment:NO onSuccess:^{
NSLog("canCelBanAllComments success.");
} onFailure:^(NSString * _Nonnull errorMessage) {
NSLog("canCelBanAllComments failed(%@).", errorMessage);
}];
Android:
chatService.cancelBanAllComment(new Callback<Void>() {
@Override
public void onSuccess(Void data) {
// 取消全员禁言成功
}
@Override
public void onError(String errorMsg) {
// 取消全员禁言失败
}
});
Web:
chatService.cancelBanAllComment().then(() => { console.log('取消全员禁言成功') })
Windows:
auto room_ptr = alibaba::meta_space::MetaSpace::GetInstance()->GetRoomInstance(room_id);
std::shared_ptr<IChat> chat_plugin = std::dynamic_pointer_cast<IChat>(room_ptr->GetPlugin(PluginChat));
chat_plugin->CancelMuteAll();
接收取消禁言消息通知的API使用示例
接收取消指定用户禁言消息
iOS:
// 需要设置AIRBRoomChannelProtocol的delegate并实现以下方法,监听如下事件,解析JSON内容
- (void) onAIRBRoomChannelEvent:(AIRBRoomChannelEvent) event info:(NSDictionary*)info
{
case AIRBRoomChannelEventMessageReceived: {
AIRBRoomChannelMessageType type = [[info valueForKey:@"type"] intValue];
switch (type)
{
case AIRBRoomChannelMessageTypeChatOneUserCommentBannedOrNot:
{
NSData *turnData = [[info valueForKey:@"data"] dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:turnData options:NSJSONReadingMutableLeaves error:nil];
BOOL mute = [[dataDic valueForKey:@"mute"] boolValue];
if (mute) {
NSLog(@"用户%@被禁言", [dataDic valueForKey:@"muteUserNick"]);
} else {
NSLog(@"用户%@被解除禁言",[dataDic valueForKey:@"muteUserNick"])
}
}
break;
... ...
}
Android:
chatService.addEventHandler(new SampleChatEventHandler() {
@Override
public void onCommentMutedOrCancel(MuteCommentEvent event) {
// 被禁言的用户ID
String muteUserOpenId = event.muteUserOpenId;
boolean mute = event.mute;
boolean isSelf = TextUtils.equals(muteUserOpenId, Const.getCurrentUserId());
showToast(String.format("%s被%s了",
isSelf ? "你" : event.muteUserNick,
mute ? "禁言" : "取消禁言"
));
}
});
Web:
// 获取事件列表
const { EventNameEnum } = window.RoomPaasSdk
// 监听禁言消息通知
chatService.on(EventNameEnum.PaaSChatMuteUser, (event) => {
console.log(event.data.mute ? '已被禁言' : '已被取消禁言')
})
Windows:
//继承ChatEventListener,并重写OnMuteUserComment方法
virtual void OnMuteUserComment(const MuteUserCommentEventModel& event) override {
}
接收取消全员禁言消息
iOS:
// 需要设置AIRBRoomChannelProtocol的delegate并实现以下方法,监听如下事件,解析JSON内容
- (void) onAIRBRoomChannelEvent:(AIRBRoomChannelEvent) event info:(NSDictionary*)info
{
case AIRBRoomChannelEventMessageReceived: {
AIRBRoomChannelMessageType type = [[info valueForKey:@"type"] intValue];
switch (type)
{
case AIRBRoomChannelMessageTypeChatAllUsersCommentBannedOrNot:
{
NSData *turnData = [[info valueForKey:@"data"] dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:turnData options:NSJSONReadingMutableLeaves error:nil];
BOOL mute = [[dataDic valueForKey:@"mute"] boolValue];
if (mute) {
NSLog(@"全体禁言开启");
} else {
NSLog(@"全体禁言解除");
}
}
break;
... ...
}
Android:
chatService.addEventHandler(new SampleChatEventHandler() {
@Override
public void onCommentAllMutedOrCancel(MuteAllCommentEvent event) {
showToast(String.format("全员被%s了", event.mute ? "禁言" : "取消禁言"));
}
});
Web:
// 获取事件列表
const { EventNameEnum } = window.RoomPaasSdk
// 监听禁言消息通知
chatService.on(EventNameEnum.PaaSChatMuteAll, (event) => {
console.log(event.data.mute ? '已全员禁言' : '已取消全员禁言')
})
Windows:
//继承ChatEventListener,并重写OnMuteAllComment方法
virtual void OnMuteAllComment(const MuteAllCommentEventModel& event) override {
}