当设备在ios中连接回互联网时获取所有通知

时间:2018-05-30 07:45:01

标签: ios objective-c iphone apple-push-notifications

我在objective-c中开发了一个iOS聊天应用程序,其中UserA在此时向UserB发送消息,UserB获得推送通知。当UserB获得推送通知时,它会向我的后端调用一个URL来了解UserA您的消息是否已发送给UserB(当应用程序未运行或被杀死时)。这一切都很好,反之亦然。

但我的问题是,当UserA向UserB发送超过5-10条消息且UserB未连接到互联网时(我的后端也向UserB发送成功消息 - 通过FCM)。当UserB连接到互联网时,它只接收最近的通知。

这是因为苹果正在维持QoS。我读过this文章。

因此,为了解决此问题,我尝试在发送通过fcm发送推送通知的请求时添加 apns-collapse-id 参数。但这只是一次只能组合最多4个通知。此场景也无法一直运行。有时只收到一条消息。

简而言之,我希望显示与连接到互联网时显示所有通知的Whatsapp相同的所有消息通知。

请指导我现在该怎么做才能解决这个问题。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下你可以做的是,

  1. 从APNS中删除所有待处理的通知。

    [[UNUserNotificationCenter currentNotificationCenter] removeAllPendingNotificationRequests];

  2. 致电服务并从特定用户的服务器中提取所有通知。

  3. 当您收到服务器的回复时,请在您的应用中显示本地通知。
  4. 还要通知您的服务器您显示的所有通知,并在服务器上标记它们。因此,下次您可以获得尚未发送的所有通知。