quickblox - 删除私人(1 对 1)聊天

Posted

技术标签:

【中文标题】quickblox - 删除私人(1 对 1)聊天【英文标题】:quickblox - remove private (1 to 1) chat 【发布时间】:2014-08-08 07:08:55 【问题描述】:

大家好,首先对我的英语感到抱歉。其次,提前感谢您的回答。我已经能够使用以下方法检索当前登录用户对话框的列表:

[QBChat dialogsWithExtendedRequest:nil delegate:self];

if ([result isKindOfClass:[QBDialogsPagedResult class]] && result.success) 


    QBDialogsPagedResult *pagedResult = (QBDialogsPagedResult *)result;

    NSArray *dials = pagedResult.dialogs;
    self.dialogs = [dials mutableCopy];
    ...

我已经能够修改 type == QBChatDialogTypeGroup 的对话框,以便使用以下方法从中删除记录的用户 ID:

QBChatDialog *selectedDialog = self.dialogs[sender.tag];

if (selectedDialog.type == QBChatDialogTypeGroup) 

    NSMutableDictionary *extendedRequest = [NSMutableDictionary new];
    extendedRequest[@"pull_all[occupants_ids][]"] = [NSString stringWithFormat:@"%ld",(unsigned long)self.logedUser.ID];
    [QBChat updateDialogWithID:selectedDialog.ID extendedRequest:extendedRequest delegate:self];

这使得下次我向 QuickBlox 请求对话框列表时,除了刚刚“更新”的对话框列表之外,所有对话框列表都会被列出。问题是,如果我在 selectedDialog.type == QBChatDialogTypePrivate 时使用相同的“extendedRequest”请求,我总是从 QuickBlox 获得错误的许可。当我从 QuickBlox 请求对话框列表时,是否有使类型 == QBChatDialogTypePrivate 的对话框不会再次列出? 我希望一切都清楚。提前谢谢 =)

【问题讨论】:

【参考方案1】:

您不能将 pull_all[occupants_ids][]push_all[occupants_ids][] 用于私人对话,只能用于群组

通过私人对话,其中有 2 个用户 - 你和你的对手。而且您不能删除或添加其他任何人,因为这是私人聊天,而不是群聊

【讨论】:

你需要什么?移除住户或移除私人聊天? 实际上我使用以下方法从 quickblox 检索聊天对话框:[QBChat dialogsWithExtendedRequest:nil delegate:self];我在表格视图中显示它们。用户可以删除他/她想要的聊天似乎是合理的。当用户想要从 tableview 中删除群聊时,我使用 pull_all[occupants_ids][] 以及下一次 [QBChat dialogsWithExtendedRequest:nil delegate:self];被调用,群聊不被检索。当用户选择私人聊天时,我不知道该怎么办...... 伊戈尔有什么建议吗? NSString *dialogID = @"theChatDialogIDhere"; [QBChat deleteDialogWithID:dialogID delegate:self];【参考方案2】:

要删除聊天对话框,

[QBChat deleteDialogWithID:dialogID delegate:self];

处理委托(符合QBActionStatusDelegate

- (void)completedWithResult:(QBResult *)result 
    if([result isKindOfClass:[QBChatDialogResult class]]) 
        QBChatDialogResult *qbDialog = (QBChatDialogResult *)result;
        if(qbDialog.success) 
            NSLog(@"Dialog has been deleted!");
         else 
            NSLog(@"Uh no, something wrong!");
        
    

【讨论】:

以上是关于quickblox - 删除私人(1 对 1)聊天的主要内容,如果未能解决你的问题,请参考以下文章

如果用户不在聊天室中,Android quickblox 如何接收消息

如何在 Quickblox 中删除聊天用户?

如何清除 Quickblox 中的聊天记录?

从 Quickblox 对话框中删除特定聊天消息

使用 QuickBlox 接收离线消息时出现问题

使用 quickblox 的 Quickblox 聊天