【问题标题】:quickblox - remove private (1 to 1) chatquickblox - 删除私人(1 对 1)聊天
【发布时间】: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 的对话框不会再次列出? 我希望一切都清楚。提前谢谢 =)

【问题讨论】:

    标签: ios objective-c quickblox


    【解决方案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!");
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多