如何在不点击 banner/alert 的情况下强制退出/向上滑动以终止 iOS 应用程序时获取推送通知负载?

How to get the push notification payload when force-quit / swipe up to kill the iOS app without tapping on the banner/alert?

我正在构建一个处理从 Parse 推送的通知的应用程序,并尝试创建通知历史记录功能。我已经成功启用了后台模式,所以当应用程序在后台 运行 时,应用程序可以通过 application:didReceiveRemoteNotification:fetchCompletionHandler 很好地获取负载,即使 banner/alert 没有被窃听。但是,当强制退出/向上滑动以终止应用程序时,不会调用 application:didReceiveRemoteNotification:fetchCompletionHandler

是否有任何方法可以实现在应用程序未点击 banner/alert 的情况下被终止时获取推送通知负载?提前致谢!

如果您的应用被终止,您将无法获得通知的有效负载。

In most cases, the system does not relaunch apps after they are force quit by the user. One exception is location apps, which in iOS 8 and later are relaunched after being force quit by the user. In other cases, though, the user must launch the app explicitly or reboot the device before the app can be launched automatically into the background by the system. When password protection is enabled on the device, the system does not launch an app in the background before the user first unlocks the device. - Understanding When Your App Gets Launched into the Background

无论如何,推送通知不可靠
这意味着您无法确定它们是否会交付。

如果您想保留 "notification history" 列表,请在服务器端执行并在应用程序内获取(以完全与推送无关的方式)。

每次发送推送通知时,将其内容保存在数据库中,就像任何对象一样。然后当用户打开历史列表时,像任何其他解析对象一样获取列表。