Огонь локального пу sh уведомления о выбранной дате и времени в быстром - PullRequest
0 голосов
/ 20 февраля 2020

Мне нужно отправить уведомление о пу sh в указанные ниже дату и время в 9:00:

January: 13rd, 18th, 20th, 23rd 

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 20 февраля 2020

Здесь мы используем уведомление о триггере: Календарь: триггер с указанием c даты и времени. Триггер создается с использованием объекта компонентов даты, который облегчает выполнение определенных повторяющихся интервалов. Чтобы преобразовать дату в ее компоненты даты, используйте текущий календарь. Например:

`// Swift
let date = Date(timeIntervalSinceNow: 3600)
let triggerDate = Calendar.current.dateComponents([.year,.month,.day,.hour,.minute,.second,],from: date)
//Objective-C
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:3600];
NSDateComponents *triggerDate = [[NSCalendar currentCalendar]   
          components:NSCalendarUnitYear +
          NSCalendarUnitMonth + NSCalendarUnitDay +
          NSCalendarUnitHour + NSCalendarUnitMinute +
          NSCalendarUnitSecond fromDate:date];`

Чтобы создать триггер из компонентов даты:

// Swift
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDate, repeats: false)
// Objective-C
UNCalendarNotificationTrigger *trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:triggerDate repeats:NO];

Чтобы создать триггер, повторяющийся с определенным интервалом, используйте правильный набор компонентов даты. Например, чтобы уведомление повторялось ежедневно в одно и то же время, нам нужны только час, минуты и секунды:

let triggerDaily = Calendar.current.dateComponents([hour,.minute,.second,], from: date)
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDaily, repeats: true)

Чтобы оно повторялось еженедельно в одно и то же время, нам также нужен день недели:

let triggerWeekly = Calendar.current.dateComponents([.weekday,hour,.minute,.second,], from: date)
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerWeekly, repeats: true)

Это интересное изменение по сравнению с более старой платформой уведомлений, в которой были дата запуска и интервал повторения. Компоненты даты более гибкие, но не существует простого способа полностью воспроизвести свойство fireDate старой платформы. Например, если я хочу, чтобы ежедневный триггер начинался через 1 неделю.

пожалуйста, выполните gothrough

UNCalendarNotificationTrigger https://developer.apple.com/documentation/usernotifications/uncalendarnotificationtrigger

Визит https://useyourloaf.com/blog/local-notifications-with-ios-10/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...