Swift 中随机重复本地通知

Dav*_*gne 7 notifications apple-push-notifications swift unusernotificationcenter unnotificationtrigger

TL;DR:是否可以在不使用APNS(或替代推送通知服务)的情况下获得重复的随机本地通知?

我正在构建一个Core Data包含一堆对象的应用程序。(我们将它们称为小部件。)每天的某个时间(假设是中午)我想发送一条通知以查看其中一个小部件。

didFinishLaunchingWithOptions我中检查以确保通知已启用并设置委托等,然后调用函数来构建本地通知。所有这一切都运行良好。

    var date = DateComponents()
    date.hour = 12
    date.minute = 00
    let content = UNMutableNotificationContent()
    content.title = "You should see this widget!"
    content.userInfo = ["widgetID": widget.id]
    content.body = "Today's Widget:\n\(widget.title!)"
    content.sound = UNNotificationSound.default()
    let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true)
    let request = UNNotificationRequest(identifier: notificationIdentifer, content: content, trigger: trigger)
    UNUserNotificationCenter.current().add(request, withCompletionHandler: { (error : Error?) in if let theError = error { print(theError.localizedDescription)}}
Run Code Online (Sandbox Code Playgroud)

我的委托处理程序也正常工作:

func userNotificationCenter(_ center: UNUserNotificationCenter,
                            didReceive response: UNNotificationResponse,
                            withCompletionHandler completionHandler: @escaping () -> Void) { ... a bunch of stuff to happen ... }
Run Code Online (Sandbox Code Playgroud)

现在,在该函数中,如果用户以任何显式方式与通知交互,我可以将“重置”UNMutableNotificationContent为新的随机小部件。问题是,如果用户根本与通知交互 - 请参阅 Apple 的调度和处理本地通知文档的“处理标准系统操作”部分 - 我无法“重置”通知,所以明天他们只是会再次建议相同的小部件,这很烦人。

我对使用(或替代方案)并不真正感兴趣APNS,因为我觉得我不需要这样做,并且不想处理所需的所有额外内容,但我似乎找不到替代方案。

请注意,这个问题不是以下问题的重复: