文档

取消禁言

更新时间:

本文介绍如何取消禁言用户或取消全员禁言。

说明

  • 注意,只有当前房间的创建者或者管理员,才能取消禁言用户;房间内其他人取消禁言无效。

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 {

}
  • 本页导读 (1)
文档反馈