【问题标题】:Open .ics file in iOS App在 iOS App 中打开 .ics 文件
【发布时间】:2014-02-27 22:32:14
【问题描述】:

我需要在我的应用中打开一个 .ics 文件。

我试着这样打开它:

NSURL *path = [[NSBundle mainBundle] URLForResource:@"myIcsName" withExtension:@"ics"];
[[UIApplication sharedApplication] openURL:path];

但是什么都没有发生。

如何打开 .ics 文件?

【问题讨论】:

  • 您不能将文件 URL 传递给 UIApplication openURL: 方法。你到底想在这里做什么?你想用 ics 文件做什么?
  • @rmaddy 我希望用户能够在日历应用中查看 ics 文件。
  • 看下面的搜索结果,好像没人知道怎么做:stackoverflow.com/search?q=%5Bios%5D+ics+open+calendar
  • @rmaddy 这让我成为第一个 ;)
  • 奇怪,因为我认为其他几个问题表明使用 UIDocumentInteractionController 并没有提供日历应用程序作为选项。这当然是我的第一个想法。很高兴知道它按预期工作。

标签: ios icalendar


【解决方案1】:

我刚刚使用了以下代码:

- (IBAction)displayICS:(id)sender
{
    NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"ics"];
    NSURL *url = [NSURL fileURLWithPath:path];
    UIDocumentInteractionController *dc = [UIDocumentInteractionController interactionControllerWithURL:url];
    dc.delegate = self;
    [dc presentPreviewAnimated:YES];
}
-(UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller
{
    return self;
}

【讨论】:

  • 这不会让您从 URL 打开,只能从文件打开。
  • 这允许查看事件信息但是如何将事件添加到日历中? UIDocumentInteractionController 上没有选项可以在日历上添加事件。
【解决方案2】:

我发现有两个项目可以让您打开 ICS 文件并从中获取事件、日期和其他信息作为 Objective-C 对象。

MXLCalendarManager 似乎更进一步,它将允许您从日期的 ICS 文件搜索中提取事件并将事件添加到用户 iOS 日历中。这可能是您正在寻找的。 GitHub Project MXLCalendarManager 它还支持编写新的 ICS 文件。

我创建了一个项目,该项目使用用 C 编写的 libical 库来解析完整的 ICS 文件。该项目仍处于早期阶段,在准备投入项目之前可能需要更多的小心谨慎。你可以在Github Project XbICalendar查看更多关于libical的详细信息可以在GitHub Project libical找到。

【讨论】:

    猜你喜欢
    • 2014-08-10
    • 2015-12-08
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多