我的iOS应用中有很多通知可以分组放置:
在我的设置屏幕中,每个通知组都有一个开关。 我想根据相应交换机的值启用禁用通知组: 例如:事件开关已关闭,因此我不想接收此组的2种通知。
当应用程序在前台时,使用函数的completionHandler轻松处理:
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
但是,当应用处于后台时,我无法找到阻止这些通知的方法。
我读到了这样处理背景通知。我必须在我自己的服务器中存储每个用户的交换机的值,并根据服务器上的值发送或不发送通知。
这是正确的方法,或者我在我的应用中遗漏了一些东西。
答案 0 :(得分:2)
您无法与应用未处于活动状态时发送的通知进行互动,因为它们是按照这种方式设计的,因此会以任何方式接收这些通知。
您可以在应用处于活动状态时执行此操作,这实际上是针对开发人员,允许他们在应用处于活动状态时使用自定义通知处理,而不是过滤它们的方法。
处理这种情况的最佳方法是您提出的方法,后端应过滤要发送给用户的通知类型,并仅将这些通知发送给用户。
答案 1 :(得分:0)
是的,你是正确的。您必须在后端存储开关值(开/关)并根据该值发送推送通知。