我在我的 iOS 应用程序上实现了 Quickblox 聊天,另一个开发人员在 Android 应用程序上实现了相同的应用程序。
当我在 iOS 设备与 iOS 设备之间通话时,一切正常,消息发送、接收、在我的 View 中正常列出。
当 Android 设备与 Android 设备之间的对话时,一切也正常发生,一切都发生得很完美。
问题是当我们尝试在 iOS 设备和 Android 设备之间通信时。我在我的设备上收到推送,当我进入聊天时,消息并不总是在我第一次进入聊天 View 时列出。当我已经在 View 中并收到一条消息时,我需要离开它并返回,以便消息出现,但它会间歇性地出现。
是否需要任何配置,转换,以便跨平台聊天正常工作?这是一个已知错误?
谢谢你!
最佳答案
最后我弄清楚我的代码中发生了什么。
在 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
}
现在,一切正常!感谢您的回答。
关于android - iOS 和 Android 之间的 Quickblox 聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28357115/