Swift中的随机重复本地通知

时间:2017-12-28 06:07:11

标签: swift notifications apple-push-notifications 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)}}

我也让代表的处理程序正常工作:

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

就像现在一样,在那个功能中,我能够重置" UNMutableNotificationContent到新的随机窗口小部件 IF ,用户以任何明确的方式与通知进行交互。 问题是,如果用户根本不与通知进行交互 - 请参阅"处理标准系统操作" Apple的Scheduling and Handling Local Notifications文档部分 - 我无法重置"重置"通知,所以明天他们只是再次建议相同的小部件,这很烦人。

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

请注意,此问题不是 的副本:

0 个答案:

没有答案