Как пригласить на событие календаря iCloud с помощью почты, iOS swift

У меня есть события (полученные с помощью учетной записи iCloud) в моем календаре, теперь я хочу пригласить и поделиться событием через контакты или почту. К приглашению мне нужно приложить детали этого мероприятия. Детали также появятся в тех календарях, которые были приглашены мной, когда они нажмут на приглашение. Может ли кто-нибудь предложить метод для подражания.


person Harsha    schedule 07.02.2018    source источник
comment
Это календарь устройства по умолчанию или пользовательский календарь вашего приложения?   -  person kushalrshah    schedule 07.02.2018
comment
Я использую собственный календарь из некоторых файлов pod. У меня есть EKEvent, его нужно преобразовать в файл .iCal для почтового приложения. Я не знаю, как конвертировать EKEvent в iCal.   -  person Harsha    schedule 07.02.2018


Ответы (1)


У EKEvent нет методов, позволяющих сохранить его в файл. Единственный способ, который я вижу, это создать файл самостоятельно, он должен иметь формат VCalendar (расширение .iCal). Просто сохраните событие в файл в соответствии с предложенной ниже библиотекой. Вы можете использовать компоновщик почты или UIActivityViewController, чтобы поделиться событием, чтобы пригласить людей.

URL-адрес библиотеки: https://github.com/mysterioustrousers/EKEventToiCal

Чтобы прикрепить его вместе с электронным письмом в MFMailComposer, используйте следующий код:

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; picker.mailComposeDelegate = self; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *WritableDBPath= [documentsDirectory stringByAppendingPathComponent:kFilename];
NSData *data = [NSData dataWithContentsOfFile:WritableDBPath];
[picker addAttachmentData:data mimeType:@"text/calendar" fileName:@"/abc.ical"]; [picker setSubject:@"Database"];
[picker setMessageBody:@"Database testing" isHTML:NO];
[self presentModalViewController:picker animated:YES];

Дайте мне знать, если у вас есть какие-либо вопросы.

person Patrick R    schedule 07.02.2018