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