我从服务器下载了一些文件并存储到本地文件系统中。我想在设备中使用默认应用程序打开它们。如何使用默认应用程序打开文件。请提供一些示例代码。
感谢
答案 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属性的正确分配。