1

我想向我的应用程序添加功能,使用户能够订阅在线日历。我之前通过打开日历的 url 来做到这一点,这会导致 iOS 询问用户是否要订阅此日历。这种做法在完成后不会给我任何通知,并且会提供糟糕的用户体验。

有没有更好的办法?我正在研究 EventKit 和 EKCalendarTypeSubscription,但我找不到我需要的信息。

我可以使用 EventKit 让用户订阅我的 ftp 服务器上的 .ics-calendar 并知道用户是否已经订阅了这个日历吗?

4

1 回答 1

4

您可以使用该openURL方法并收听EKEventStoreChangedNotification通知。

self.eventStore = [[EKEventStore alloc] init];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(storeChanged:)
                                             name:EKEventStoreChangedNotification object:self.eventStore];
// Prompt the to subscribe to the calendar
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://domain/path/to/cal.ics"]];

当用户单击 UIAlertView 中的订阅按钮时,storedChanged:将被调用。

要检查用户以前是否订阅过日历,请检查 上的calendars属性EKEventStore

于 2013-10-17T10:21:21.840 回答