聊天Quickblox时会创建多个对话框

时间:2016-03-07 06:26:47

标签: ios dialog quickblox

为群组创建聊天对话框。 例如,用户A正在创建对话框,而用户B想要使用该对话框。 但有时会出现用户A创建一个对话框然后用户B创建另一个对话框的情况。 因此,由于两个不同的对话框,他们无法互相聊天。 下面是我用来创建对话框的代码: -

-(void) moveToChatView:(QBChatDialog *)chatDialog ObjFriend:(Friend *)objFriend

{
    [QBRequest createDialog:chatDialog successBlock:^(QBResponse *response, QBChatDialog *createdDialog)

    {
         // Success, do something
    }
    errorBlock:^(QBResponse *response)
    {

    }];
} 

编辑: - 有没有像createOrJoinRoomWithName ??

这样的方法

1 个答案:

答案 0 :(得分:2)

如果您想在群聊中添加用户,则需要更新群组对话。

QBChatDialog *updateDialog = [[QBChatDialog alloc] initWithDialogID:@"53aac645535c12bd3b008a40" type:QBChatDialogTypeGroup];
updateDialog.pushOccupantsIDs = @[@"300", @"301", @"302"];
updateDialog.name = @"school friends";

[QBRequest updateDialog:updateDialog successBlock:^(QBResponse *responce, QBChatDialog *dialog) {

} errorBlock:^(QBResponse *response) {

}];

有关详细信息,请查看此Update_group_dialog

对于群组对话中的聊天,请检查Chat_in_group_dialog

不要忘记使用委托方法。

pragma mark QBChatDelegate

- (void)chatRoomDidReceiveMessage:(QBChatMessage *)message fromDialogId:(NSString *)dialogId{

}

编辑1: - 您将获得DialogId并重新启动所有对话框。

QBResponsePage *page = [QBResponsePage responsePageWithLimit:100 skip:0];

[QBRequest dialogsForPage:page extendedRequest:nil successBlock:^(QBResponse *response, NSArray *dialogObjects, NSSet *dialogsUsersIDs, QBResponsePage *page) {

} errorBlock:^(QBResponse *response) {

}];

编辑2: - 要在创建新对话框时了解dialogId,请使用 createChatNotificationForGroupChatCreation 方法。

- (QBChatMessage *)createChatNotificationForGroupChatCreation:(QBDialog *)dialog
{
    // create message:
    QBChatMessage *inviteMessage = [QBChatMessage message];

    NSMutableDictionary *customParams = [NSMutableDictionary new];
    customParams[@"xmpp_room_jid"] = dialog.roomJID;
    customParams[@"name"] = dialog.name;
    customParams[@"_id"] = dialog.ID;
    customParams[@"type"] = @(dialog.type);
    customParams[@"occupants_ids"] = [dialog.occupantIDs componentsJoinedByString:@","];

    // Add notification_type=1 to extra params when you created a group chat 
    //
    customParams[@"notification_type"] = @"1";

    inviteMessage.customParameters = customParams;

    return inviteMessage;
}