iOS - Enable/disable 一组基于开关值的通知
iOS - Enable/disable a group of notifications based on switch value
我的 iOS 应用程序中有一堆通知,可以分组放置:
- 第 1 组:"Events" -> 2 种通知
- 第 2 组:"Promotions" -> 3 种通知
.....
在我的设置屏幕中,每个通知组都有一个开关。
我想根据相应开关的值启用禁用通知组:
ex: 事件开关关闭,所以我不想收到该组的 2 类型通知。
当应用程序在前台时,通过使用函数的 completionHandler 可以轻松处理:
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
但是当应用程序处于后台时,我找不到阻止这些通知的方法。
我读到它是为了处理这样的后台通知。我必须在我自己的服务器中存储每个用户的开关值,并根据服务器上的值发送或不发送通知。
这是正确的方法,还是我的应用程序中遗漏了什么。
是的,你走对了路。您必须在后端存储开关值 (On/Off) 并根据该值发送推送通知。
您无法与在您的应用程序未激活时发送的通知进行交互,它们将以任何一种方式接收,因为它们是按这种方式设计的。
您可以在应用程序处于活动状态时执行此操作实际上是为了让开发人员允许他们在应用程序处于活动状态时使用自定义通知处理而不是过滤它们的方法。
最好的处理方法是你提出的那个,后端应该过滤发送给用户的通知类型,并且只发送那些给用户。
我的 iOS 应用程序中有一堆通知,可以分组放置:
- 第 1 组:"Events" -> 2 种通知
- 第 2 组:"Promotions" -> 3 种通知 .....
在我的设置屏幕中,每个通知组都有一个开关。 我想根据相应开关的值启用禁用通知组: ex: 事件开关关闭,所以我不想收到该组的 2 类型通知。
当应用程序在前台时,通过使用函数的 completionHandler 可以轻松处理:
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
但是当应用程序处于后台时,我找不到阻止这些通知的方法。
我读到它是为了处理这样的后台通知。我必须在我自己的服务器中存储每个用户的开关值,并根据服务器上的值发送或不发送通知。
这是正确的方法,还是我的应用程序中遗漏了什么。
是的,你走对了路。您必须在后端存储开关值 (On/Off) 并根据该值发送推送通知。
您无法与在您的应用程序未激活时发送的通知进行交互,它们将以任何一种方式接收,因为它们是按这种方式设计的。
您可以在应用程序处于活动状态时执行此操作实际上是为了让开发人员允许他们在应用程序处于活动状态时使用自定义通知处理而不是过滤它们的方法。
最好的处理方法是你提出的那个,后端应该过滤发送给用户的通知类型,并且只发送那些给用户。