2015-02-06 9 views
0

Я реализовал чат Quickblox в своем приложении iOS, а другой разработчик реализовал одно и то же приложение в приложении для Android.Чат Quickblox между iOS и Android

Когда я говорю устройство iOS на устройстве iOS, все происходит нормально, сообщения отправляются, принимаются, как обычно отображаются в моем представлении.

Когда разговор между Android-устройством и Android-устройством, все также происходит нормально, все происходит отлично.

Проблема в том, что мы пытаемся поговорить между устройством iOS и устройством Android. Я нажимаю на свое устройство, и когда я вхожу в чат, это сообщение не всегда отображается в первый раз, когда я вхожу в представление чата. Когда я уже вижу, и получаю сообщение, мне нужно выйти из него и обратно, чтобы сообщение появилось, но оно появляется с перерывами.

Есть ли какая-либо конфигурация, конверсия, чтобы кросс-платформенный чат работал правильно? Это известная ошибка?

Thank U!

+0

My iOS <-> Android-приложение для кросс-платформенного Quickblox работает без проблем, поэтому в вашем коде должна быть проблема. Если вы хотите опубликовать свой код, я могу помочь вам отладить его. –

ответ

1

Наконец-то я понял, что происходило в моей код.

В iOS мой iPhone был с настройками> Общие> Дата & Время> Часовой пояс - Автоматически отключается. Мои часы были на 2 минуты раньше, а затем, когда отправлялись сообщения с запросом на диалог, я использовал [nowtimeIntervalSince1970], и я не получил все сообщения, поэтому мне пришлось ждать 2 минуты, чтобы снова войти в чат, то все сообщения были перечислены. С настройкой даты, времени и часового пояса все идет хорошо.

Objective-C Запрос:

NSMutableDictionary *extendedRequest = [NSMutableDictionary new]; 
NSDate *now = [NSDate date]; 
extendedRequest[@"date_sent[lte]"]= @([now timeIntervalSince1970]); 
extendedRequest[@"sort_desc"]= @"date_sent"; 

//get the most recent 100 messages 
extendedRequest[@"limit"] = @(100); 

[QBChat messagesWithDialogID:self.dialog.ID extendedRequest:extendedRequest delegate:self]; 

В Java, мы только должны были прокомментировать это, если:

if (messageHistory == null || !messages.get(messages.size() - 1).getId() 
.equals(messageHistory.get(messageHistory.size() - 1).getId())) { 
    //stuff here 
} 

Теперь все работает отлично! Спасибо за ответы.

+0

вы можете поделиться андроидным кодом показать предупреждение или нажать уведомление о получении сообщения, если пользователь не находится в чате, но вошел в систему. –

0

Я не могу понять вашу проблему. Какой тип чата вам нужен (частный или групповой)?

Межплатформенный чат работает нормально в приложении Q-municate. Попробуйте (Android сторона): https://github.com/QuickBlox/q-municate-android

Логика для приватного чата:

https://github.com/QuickBlox/q-municate-android/blob/master/Q-municate_core/src/main/java/com/quickblox/q_municate_core/qb/helpers/QBPrivateChatHelper.java

Логика для группового чата:

https://github.com/QuickBlox/q-municate-android/blob/master/Q-municate_core/src/main/java/com/quickblox/q_municate_core/qb/helpers/QBMultiChatHelper.java

Смежные вопросы