如何在ios中打开日历.ics文件?

时间:2014-06-19 20:17:14

标签: ios objective-c icalendar

我正在尝试在我的应用中下载并打开.ics文件。

我发现了一些问题,这里有一些我正在使用的代码

// NSString *path = [[NSBundle mainBundle] pathForResource:@"http://www.nmsd.wednet.edu//site/handlers/icalfeed.ashx?MIID=607" ofType:@"ics"];
NSURL *url = [NSURL fileURLWithPath:@"http://www.nmsd.wednet.edu//site/handlers/icalfeed.ashx?MIID=607"];
UIDocumentInteractionController *dc = [UIDocumentInteractionController interactionControllerWithURL:url];
dc.delegate = self;
[dc presentPreviewAnimated:YES];

什么都没发生。没有任何错误。寻找图书馆来实现这一目标会更容易吗?

3 个答案:

答案 0 :(得分:5)

如果您有远程.ics文件的链接,请为Safari准备。

假设您有iCal文件的链接:

"pl-dev2.office.org/events/sync.ics?t=90613b6c7f8". 

只需在链接中添加前缀webcal://即可。

<强>夫特

let link = "webcal://pl-dev2.office/events/sync.ics?t=90613b6c7f8"

let webcal = NSURL(string: link)
UIApplication.sharedApplication().openURL(webcal)

<强>目标C

NSString *link = "webcal://pl-dev2.office/events/sync.ics?t=90613b6c7f8"

NSUrl *webcal = [NSURL URLWithString:link];
[[UIApplication sharedApplication] openURL:webcal];

Safari会在您的日历应用中为您同步它。

答案 1 :(得分:0)

您可以将NSURL fileURLWithPath与URL字符串一起用作参数,尽管它需要文件路径。将其更改为NSURL URLWithString

答案 2 :(得分:0)

@Bartłomiej Semańczyk 正在添加一个日历,如果你想添加一个事件,你可以使用 SFSafariController 打开 url

let link = "https://www.apple.com/v/apple-events/home/p/built/assets/event.ics?d=3213214324313"
let url = URL(string: link)!
let safariVC = SFSafariViewController(url: url)
present(safariVC, animated: true, completion: nil)