我正在构建一个提醒应用程序,它根据用户的自定义设置发送重复的本地通知 . 例如,我可能每隔一天晚上8点发送通知 . 每次我发送其中一个通知时,我都想替换可能已在用户通知中心显示的任何先前通知 .
iOS中新的UserNotifications框架让我接近能够做到这一点 . 据我所知,通知可以通过两种方式替换:
-
将
UNCalendarNotificationTrigger
与repeats: true
一起使用 . 重复触发器替换过去的触发器 . -
使用相同的
identifier
创建新的UNNotificationRequest
. 每当使用相同的identifier
发送请求时,它将替换所有其他实例 .
这些解决方案都不适合我:
-
我无法使用重复通知,因为
UNCalendarNotificationTrigger
使用DateComponents
作为重复计划,仅仅DateComponents
只能用DateComponents
来描述 . -
因为我需要一次安排几个通知,所以我必须指定唯一的
identifier
,因此,它们在显示时不会相互替换 .
我希望服务扩展会在这里拯救我 . 如果我在收到通知时可以执行代码,我可以在触发新通知时以编程方式删除旧通知 . 不幸的是,似乎服务扩展仅适用于远程通知 . 即使我可以使用远程通知(这本身就是一整套蠕虫),这种解决方案也会对服务扩展允许的内容产生规则 .
有没有人对如何解决这个问题有任何想法,或者我注定要向用户的通知中心发送垃圾邮件?