2015-02-06 110 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