我想向我的应用程序添加功能,使用户能够订阅在线日历。我之前通过打开日历的 url 来做到这一点,这会导致 iOS 询问用户是否要订阅此日历。这种做法在完成后不会给我任何通知,并且会提供糟糕的用户体验。
有没有更好的办法?我正在研究 EventKit 和 EKCalendarTypeSubscription,但我找不到我需要的信息。
我可以使用 EventKit 让用户订阅我的 ftp 服务器上的 .ics-calendar 并知道用户是否已经订阅了这个日历吗?
我想向我的应用程序添加功能,使用户能够订阅在线日历。我之前通过打开日历的 url 来做到这一点,这会导致 iOS 询问用户是否要订阅此日历。这种做法在完成后不会给我任何通知,并且会提供糟糕的用户体验。
有没有更好的办法?我正在研究 EventKit 和 EKCalendarTypeSubscription,但我找不到我需要的信息。
我可以使用 EventKit 让用户订阅我的 ftp 服务器上的 .ics-calendar 并知道用户是否已经订阅了这个日历吗?
您可以使用该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
。