在午夜设置LocalNotifications

时间:2017-01-26 08:49:49

标签: ios notifications uilocalnotification

我想创建一个iOS应用程序,它将在特定时间发送LocalNotifications(Alarm-App)。

我的问题是我想在00:01 o'当前日期设置通知。我不知道如何实现这一点,因为不允许在特定时间进行背景工作(Stackoverflow-Post)。

修改

它应该可以响起:

  • 每天
  • 在一周的特定日期(例如:每个星期一和星期五)
  • 第一天响,第二天响,第三天响,第四天不响(这是最大的问题)
  • 有时我应该跳过通知(因为用户已经知道了)(也是大问题)

在Android中,我通过将当天的闹钟设置为00:01 o' clock

解决了这个问题

这在iOS中也可以吗?

1 个答案:

答案 0 :(得分:0)

要实现此目的,您必须在用户设置闹钟时设置通知。您应该使用UNTimeIntervalNotificationtrigger,而不是UNCalendarNotificationTrigger。计划日历通知,允许您在特定时间安排它们,然后相应地重复它们。最好的办法是,在指定日期组件时,您可以指定要重复通知的工作日,例如,如果要在星期一重复通知,请将工作日属性设置为2,依此类推。

let calendar = Calendar.current
            var components = calendar.dateComponents([.hour, .minute], from: date)
            components.weekday = 2

            //creating trigger
            let trigger = UNCalendarNotificationTrigger(dateMatching: components, repeats: true)

            //setting content
            let content = UNMutableNotificationContent()
            content.title = "Title"
            content.body = "Body"

            //requesting notification
            let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)

            //scheduling notification
            UNUserNotificationCenter.current().add(request)

现在,如果您有超过1个工作日要重复通知,只需在循环中运行此代码并传递不同的工作日。

我确实使用这种方法制作了一个报警应用程序,它运行得非常好。

希望这会有所帮助。 :)