iOS 10 UserNotification Framework。日历触发器

时间:2017-04-28 18:53:13

标签: swift ios10 unusernotificationcenter

我在iOS 10.3.2 Beta 4和xcode 8.3.2上。我试图每天在同一时间发出通知,但通知似乎永远不会触发。如果我不使用日历触发器并使用timeinterval触发器,则它们按预期工作。

这是我的代码

let content = UNMutableNotificationContent()
    content.title = "Daily Notification"
    content.subtitle = ""
    content.body = NSLocalizedString("Hello I am a notification", comment: "Comment")
    content.badge = 1
    content.sound = UNNotificationSound.default()

    let calendar = Calendar.current
    var dateComponents = calendar.dateComponents([.day, .month, .year, .hour], from: Date())
    dateComponents.hour = 14
    dateComponents.minute = 55

    let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)

    NSLog("Setting daily notification - \(dateComponents)")

    let request = UNNotificationRequest(identifier: "dailyWarning", content: content, trigger: trigger)

    center.add(request, withCompletionHandler: { error in

        if error != nil {
            NSLog("Error occurred")
        } else {
            NSLog("Request added successfully: %@", request)
        }
    })

1 个答案:

答案 0 :(得分:2)

尝试创建这样的触发器:

var dateComponents = DateComponents()
dateComponents.hour = 14
dateComponents.minute = 55
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true) // Setting repeats to true will trigger the notification daily

有关仅提供hourminutes的原因的详细信息,请参阅上面的说明清单1 <{3}}。