iOS - 根据切换值启用/禁用一组通知

时间:2018-03-06 15:07:33

标签: ios swift push-notification apple-push-notifications

我的iOS应用中有很多通知可以分组放置:

  • 第1组:"事件" - > 2种通知
  • 第2组:"促销" - > 3种通知 .....

在我的设置屏幕中,每个通知组都有一个开关。 我想根据相应交换机的值启用禁用通知组: 例如:事件开关已关闭,因此我不想接收此组的2种通知。

当应用程序在前台时,使用函数的completionHandler轻松处理:

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)

但是,当应用处于后台时,我无法找到阻止这些通知的方法。

我读到了这样处理背景通知。我必须在我自己的服务器中存储每个用户的交换机的值,并根据服务器上的值发送或不发送通知。

这是正确的方法,或者我在我的应用中遗漏了一些东西。

2 个答案:

答案 0 :(得分:2)

您无法与应用未处于活动状态时发送的通知进行互动,因为它们是按照这种方式设计的,因此会以任何方式接收这些通知。

您可以在应用处于活动状态时执行此操作,这实际上是针对开发人员,允许他们在应用处于活动状态时使用自定义通知处理,而不是过滤它们的方法。

处理这种情况的最佳方法是您提出的方法,后端应过滤要发送给用户的通知类型,并仅将这些通知发送给用户。

答案 1 :(得分:0)

是的,你是正确的。您必须在后端存储开关值(开/关)并根据该值发送推送通知。