iOS解析聊天应用程序:在后台/非活动状态下从多个推送更新数据。

iOS解析聊天应用程序:在后台/非活动状态下从多个推送更新数据。,ios,objective-c,xcode,push-notification,parse-platform,Ios,Objective C,Xcode,Push Notification,Parse Platform,我正在使用Parse实现一个iOS聊天应用程序。目前,大多数聊天数据存储在用户的设备上 当您从一个用户向另一个用户发送推送消息,并且接收用户在应用程序上时,设备将保存消息及其数据(消息来源、发送时间等)。从那里,如果接收用户正在与发送用户聊天,他们的聊天对话框将更新。如果他们仍在使用该应用程序,但目前没有与该用户聊天,则会显示一个弹出窗口,其中包含消息 当他们在应用程序中时,这非常有效 但是,当他们在应用程序之外时,数据(消息、发送人、发送时间等)将通过推送,推送通知将在用户屏幕上弹出。但当他们

我正在使用Parse实现一个iOS聊天应用程序。目前,大多数聊天数据存储在用户的设备上

当您从一个用户向另一个用户发送推送消息,并且接收用户在应用程序上时,设备将保存消息及其数据(消息来源、发送时间等)。从那里,如果接收用户正在与发送用户聊天,他们的聊天对话框将更新。如果他们仍在使用该应用程序,但目前没有与该用户聊天,则会显示一个弹出窗口,其中包含消息

当他们在应用程序中时,这非常有效

但是,当他们在应用程序之外时,数据(消息、发送人、发送时间等)将通过推送,推送通知将在用户屏幕上弹出。但当他们打开应用程序时,我不知道如何将推送数据传输到应用程序的存储中

我想我确实明白该怎么做(如果只有一个推送通知,用户通过点击推送通知打开应用程序:有一个委托方法似乎有一个推送通知数据字典)

但是,如果在用户打开应用程序之前发送了多条消息,和/或用户使用应用程序图标打开应用程序(而不是从通知中打开应用程序),我不确定如何访问此数据。似乎有某种方法可以获得字典对象数组,但我不确定

我知道我可以实现一种在Parse上存储数据的方法,然后在下载数据后将其删除,但是如果我不必这样做,我就不想这样做


任何帮助都将不胜感激:)

您需要将数据存储在Parse中,并允许他们查询自上次检查以来的所有消息

我建议在每次保存消息时使用计数器,这样,在接收器中,您可以检查计数器与计数器的本地副本相比是否只增加了一个,这意味着您可以在推送通知中使用消息。如果它上升了不止一个,那么您知道您必须请求Parse来获取其余的消息

您可以使用云代码,让聊天室中的每个参与者都能说出自己的号码。。。然后,您可以删除任何值小于所有参与者中最低值的内容。您甚至可以将此逻辑集成到
getMessagesSince(counterValue)
调用中

注意,在这种情况下,您还需要一个
gotMessageFromPush(counterValue)
来让服务器知道您通过Push获得了一条消息