【问题标题】:Quickblox chat between iOS and AndroidiOS 和 Android 之间的 Quickblox 聊天
【发布时间】:2015-02-19 03:11:34
【问题描述】:

我在我的 iOS 应用上实现了 Quickblox 聊天,而另一个开发者在 Android 应用上实现了相同的应用。

当我将 iOS 设备与 iOS 设备通话时,一切正常,消息发送、接收、在我的视图中正常列出。

当Android设备与Android设备之间的对话时,一切也正常进行,一切都完美地进行。

问题是当我们尝试在 iOS 设备和 Android 设备之间进行通信时。我在我的设备上收到推送,当我进入聊天时,消息并不总是在我第一次进入聊天视图时列出。当我已经在视图中并收到一条消息时,我需要退出它并返回,这样消息才会出现,但它会间歇性地出现。

是否需要任何配置,转换,以便跨平台聊天正常工作?这是一个已知的错误?

谢谢你!

【问题讨论】:

  • 我的 iOS Android 跨平台 Quickblox 应用程序可以无缝运行,因此您的代码中一定存在问题。如果你想发布你的代码,我可以帮你调试。

标签: android ios chat quickblox


【解决方案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
}

现在,一切正常!谢谢你的回答。

【讨论】:

  • 如果用户不在聊天室但已登录,你能分享android代码显示警报或消息接收的推送通知吗?
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多