当设备在 ios 后重新连接到互联网时获取所有通知
Get all the notification when device connect back to the internet in ios
我在 objective-c 中开发了一个 iOS 聊天应用程序,其中当用户 A 向用户 B 发送消息时,用户 B 会收到推送通知。当 UserB 收到推送通知时,它会调用一个 url 到我的后端,以了解 UserA 您的消息已传递给 UserB(当应用程序未 运行 或被终止时)。这一切都很好,反之亦然。
但我的问题是,当用户 A 向用户 B 发送超过 5-10 条消息时,用户 B 未连接到互联网(我的后端也通过 FCM 向用户 B 发送了成功的消息)。当 UserB 连接到互联网后,它只收到最近的通知。
这是因为苹果正在维护QoS。我阅读了 this 篇文章。
所以为了解决这个问题,我尝试在发送请求时添加 apns-collapse-id 参数以通过 fcm 发送推送通知。但这一次最多只能合并 4 个通知。此外,这种情况并非一直有效。有时只收到 1 条消息而不是全部。
简而言之,我想显示所有消息通知,就像 Whatsapp 连接到互联网时显示所有通知一样。
请指导我现在该怎么做才能解决这个问题。
提前致谢。
在这种情况下你可以做的是,
- 从 APNS 中删除所有待处理的通知。
[[UNUserNotificationCenter currentNotificationCenter] removeAllPendingNotificationRequests];
- 为特定用户调用服务并从您的服务器中提取所有通知。
- 收到服务器的响应后,在您的应用程序中显示本地通知。
- 同时通知您的服务器您显示了哪些通知,并在您的服务器上标记它们已送达。以便下次您可以收到所有尚未发送的通知。
我在 objective-c 中开发了一个 iOS 聊天应用程序,其中当用户 A 向用户 B 发送消息时,用户 B 会收到推送通知。当 UserB 收到推送通知时,它会调用一个 url 到我的后端,以了解 UserA 您的消息已传递给 UserB(当应用程序未 运行 或被终止时)。这一切都很好,反之亦然。
但我的问题是,当用户 A 向用户 B 发送超过 5-10 条消息时,用户 B 未连接到互联网(我的后端也通过 FCM 向用户 B 发送了成功的消息)。当 UserB 连接到互联网后,它只收到最近的通知。
这是因为苹果正在维护QoS。我阅读了 this 篇文章。
所以为了解决这个问题,我尝试在发送请求时添加 apns-collapse-id 参数以通过 fcm 发送推送通知。但这一次最多只能合并 4 个通知。此外,这种情况并非一直有效。有时只收到 1 条消息而不是全部。
简而言之,我想显示所有消息通知,就像 Whatsapp 连接到互联网时显示所有通知一样。
请指导我现在该怎么做才能解决这个问题。 提前致谢。
在这种情况下你可以做的是,
- 从 APNS 中删除所有待处理的通知。
[[UNUserNotificationCenter currentNotificationCenter] removeAllPendingNotificationRequests];
- 为特定用户调用服务并从您的服务器中提取所有通知。
- 收到服务器的响应后,在您的应用程序中显示本地通知。
- 同时通知您的服务器您显示了哪些通知,并在您的服务器上标记它们已送达。以便下次您可以收到所有尚未发送的通知。