2015-02-06 124 views
0

我在iOS應用上實現了Quickblox聊天,另一位開發人員在Android應用上實現了相同的應用。iOS和Android之間的Quickblox聊天

當我說iOS設備到iOS設備時,一切正常,消息發送,接收,正常列在我的視圖中。

當Android設備與Android設備之間的對話時,所有事情也都正常發生,一切都完美無缺。

問題是當我們嘗試在iOS設備和Android設備之間進行通話時。當我進入聊天窗口時,我收到了推送信息的提示,並且我第一次進入聊天窗口時並不總是列出該消息。當我已經看到並且收到消息時,我需要退出並返回,以便消息出現,但是它會間歇性地出現。

是否有任何配置需要轉換,以便跨平臺聊天正常工作?這是一個已知的錯誤?

謝謝你!

+0

我的iOS <-> Android跨平臺的Quickblox應用程序可以無縫工作,因此代碼中必然存在問題。如果你想發佈你的代碼,我可以幫你調試它。 – 2015-02-11 01:57:18

回答

1

最後我想通了什麼在發生我碼。

在iOS中,我的iPhone使用設置>常規>日期&時間>時區 - 自動關閉。我的時鐘提前了2分鐘,然後當發送帶有對話請求的列表消息時,我使用了[now timeIntervalSince1970],並且我沒有收到所有消息,所以我必須等待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

如果用戶不在聊天室但登錄,您可以分享android代碼顯示警報或推送消息接收通知嗎? – 2015-04-01 12:37:17

0