缓存所有远程通知 - iOS
Posted
技术标签:
【中文标题】缓存所有远程通知 - iOS【英文标题】:Caching all remote notifications - iOS 【发布时间】:2019-01-13 12:18:57 【问题描述】:有什么方法可以缓存所有传入的远程通知?
据我了解,UNUserNotificationCenterDelegate 提供了两种委托方法:'didReceive' & 'willPresent'
通过上述委托方法,我可以缓存远程通知
当应用在前台时
当应用处于后台/终止状态并选择通知时
但是,我无法缓存远程通知
当应用程序处于终止状态并且通过选择应用程序图标而不是通知来打开应用程序时那么可以做些什么来达到同样的效果呢?我想知道这是否可能。
我尝试在启用后台获取的情况下将 content-available 设置为 1。但这不会执行写在“didReceiveRemoteNotification”块中的逻辑。 我已经通过在 UserDefaults 中保留计数器来验证这一点。编写了从 UserDefaults 递增计数器的逻辑。 但是在我上面提到的情况下,计数器似乎没有增加。
【问题讨论】:
您是否尝试过使用共享 UNUserNotificationCenter 对象的 getDeliveredNotificationsWithCompletionHandler: 方法来获取应用程序启动后仍显示在通知中心的通知列表? @Woodstock 甚至不知道这样的东西存在!刚试过 getDeliveredNotifications ,它会从通知托盘返回所有通知。谢谢! ^^ 没问题,添加为答案,欢迎采纳! 向您的项目添加通知服务扩展。在收到通知时,您将在 didReceiveNotificationRequest 方法中获得回调。在那里,您可以将通知存储在 userdefaults 中。如果您想在您的应用中访问这些通知,您可以使用“应用组”并获取所有通知,而不管应用的状态如何。 【参考方案1】:使用共享UNUserNotificationCenter
对象的getDeliveredNotificationsWithCompletionHandler
: 方法获取应用启动后仍在通知中心显示的通知列表!
【讨论】:
嘿伍德斯托克。我有一个问题.. 所以如果我在应用程序处于终止状态时收到通知并且只是简单地清除它,我会错过那个通知,对吗?有什么办法我也可以缓存它吗?以上是关于缓存所有远程通知 - iOS的主要内容,如果未能解决你的问题,请参考以下文章