С последними версиями iOS внутри приложения Напоминания теперь мы можем создать напоминание , которое будет показано в определенном месте (вид), и если вы выберете эту опцию затем вы можете выбрать желаемое местоположение, будь то реальное физическое местоположение (например, указанный c адрес или местоположение, уже сохраненное на вашем телефоне) или момент , когда вы садитесь в машину или выходите из нее (если вы подключены к нему через Bluetooth).
Начиная с iOS 10, у нас есть EventKit Framework для программного создания напоминания с необходимой нам информацией. Можно установить его заголовок, дату, когда мы хотим, чтобы он был запущен (если это логи c, которые мы хотим), конкретное c местоположение с координатами и c.
. искал в Интернете, как повторить описанное выше поведение, то есть настроить напоминание, которое будет запущено, когда пользователь выйдет из машины (если вы явно были в паре с ним), но не нашел ничего, что позволило бы нам это сделать, только как установить реальное заданное c местоположение с координатами (см. код ниже).
Итак ... возможно ли это сделать программно или эта функция доступна только через приложение «Напоминания»?
Спасибо, любая помощь будет оценена.
- (IBAction)addReminder {
EKReminder *reminder = [EKReminder reminderWithEventStore:store];
EKStructuredLocation *place = [EKStructuredLocation locationWithTitle:@"Getting out of car"];
place.radius = 5*1000;
// DON'T WANT TO SET SPECIFIC PHYSICAL LOCATION, BUT "GETTING OUT OF CAR" EVENT, LIKE IN REMINDERS APPLICATION
// place.geoLocation = [[CLLocation alloc] initWithLatitude:0.0 longitude:0.0];
EKAlarm *alarm;
alarm.structuredLocation = place;
alarm.proximity = EKAlarmProximityLeave;
[reminder setTitle:@"Don't forget your things!"];
[reminder setPriority:EKReminderPriorityHigh];
[reminder setAlarms:@[alarm]];
[reminder setCompleted:NO];
EKCalendar *defaultReminderList = [store defaultCalendarForNewReminders];
[reminder setCalendar:defaultReminderList];
NSError *error = nil;
BOOL success = [store saveReminder:reminder
commit:YES
error:&error];
if (!success) {
NSLog(@"Error saving reminder: %@", [error localizedDescription]);
}
}