使用默认应用程序iOS从本地文件系统打开文件

时间:2014-01-01 14:48:36

标签: ios iphone objective-c ipad

我从服务器下载了一些文件并存储到本地文件系统中。我想在设备中使用默认应用程序打开它们。如何使用默认应用程序打开文件。请提供一些示例代码。

感谢

1 个答案:

答案 0 :(得分:11)

首先,您需要使用NSURL对象表示资源要打开的文件)。 以下假设一个名为filePath的NSString已初始化,并打开了资源的路径。

NSURL *resourceToOpen = [NSURL fileURLWithPath:filePath];

然后最好首先检查是否有可以打开资源的应用程序。

BOOL canOpenResource = [[UIApplication sharedApplication] canOpenURL:resourceToOpen];

最后,如果上面的行返回yes,则打开资源。

if (canOpenResource) { [[UIApplication sharedApplication] openURL:resourceToOpen]; }

我引用了以下关于实例方法canOpenURL的UIApplication类引用:

  

此方法保证在调用openURL:时,将启动另一个应用程序来处理它。它不保证完整的URL有效。

但是,如果您希望向用户显示已使用适当的UTI注册该文件类型的应用列表,您可以执行以下操作 -

UIDocumentInteractionController *documentController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:filePath]];
documentController.delegate = self;
[documentController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];

您必须实现UIDocumentInteractionControllerDelegate协议。此外,对于已知的文件类型,系统应该在不设置的情况下解析UTI属性的正确分配。