如何使用UserNotifications框架替换iOS 10中显示的通知

时间:2016-09-24 01:04:15

标签: ios iphone notifications ios10 usernotifications

我正在构建一个提醒应用,根据用户的自定义设置发送重复的本地通知。例如,我可能每隔一天晚上8点发送通知。每当我发送其中一个通知时,我都想替换可能已在用户通知中心显示的任何先前通知。

iOS中新的UserNotifications框架让我接近能够做到这一点。据我所知,通知可以用两种方式替换:

  1. UNCalendarNotificationTriggerrepeats: true一起使用。重复的触发器取代过去的触发器。
  2. 使用相同的UNNotificationRequest创建新的identifier。每当使用相同的identifier发送请求时,它将替换所有其他实例。
  3. 这些解决方案都不适合我:

    1. 我无法使用重复通知,因为UNCalendarNotificationTrigger使用DateComponents进行的重复计划不够精细。我上面的“每隔一天晚上8点”的例子不能用DateComponents来描述。
    2. 因为我需要同时安排多个通知,所以我必须指定唯一的identifier,因此,它们在显示时不会相互替换。
    3. 我希望服务扩展会在这里拯救我。如果我在收到通知时可以执行代码,我可以在触发新通知时以编程方式删除旧通知。不幸的是,似乎服务扩展仅适用于远程通知。即使我可以使用远程通知(这本身就是一整套蠕虫),这种解决方案也会对服务扩展允许的内容产生规则。

      有没有人对如何解决这个问题有任何想法,或者我注定要向用户的通知中心发送垃圾邮件?

0 个答案:

没有答案