如何每天重复UNUserNotification?

时间:2017-06-01 17:37:43

标签: ios swift ios10 unusernotificationcenter

我正在尝试允许用户安排通知,以便在每天的特定时间打开应用。到目前为止,我已经能够通过计算从现在到用户选择的时间以及在X秒内安排通知的时间来安排第一个通知。但是,有没有办法让我可以设置每天重复的通知?如果您感到困惑,这是我的代码的一部分:

        var fromDate = from.ToString("D", new CultureInfo(this.BGUser.UICultureInfoString));
        var toDate = to.ToString("D", new CultureInfo(this.BGUser.UICultureInfoString));

非常感谢任何帮助

2 个答案:

答案 0 :(得分:5)

在您的情况下,请更改此行:

let notifTrigger = UNTimeIntervalNotificationTrigger(timeInterval: newTime, repeats: false)

let notifTrigger = UNTimeIntervalNotificationTrigger(timeInterval: newTime, repeats: true)

来自文档:

<强> UNCalendarNotificationTrigger

  

在指定的日期和时间触发通知。你用的是   UNCalendarNotificationTrigger对象指定时间   通知触发条件的信息。日历   触发器可以触发一次,也可以多次触发。

NSDateComponents* date = [[NSDateComponents alloc] init];
date.hour = 8;
date.minute = 30; 
UNCalendarNotificationTrigger* trigger = [UNCalendarNotificationTrigger
                     triggerWithDateMatchingComponents:date repeats:YES];

<强>夫特:

var date = DateComponents()
date.hour = 8
date.minute = 30 
let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true)

答案 1 :(得分:0)

FOR SWIFT3

    let calendar = Calendar(identifier: .gregorian)
    let components = calendar.dateComponents(in: .current, from: date)
    let newComponents = DateComponents(calendar: calendar, timeZone: .current, month: components.month, day: components.day, hour: components.hour, minute: components.minute)
    let trigger = UNCalendarNotificationTrigger(dateMatching: newComponents, repeats: true)