1. iOS 导入导出文档
1.1. 导出文档
UIActivityViewController 和 UIDocumentInteractionController 都可以实现。
UIActivityViewController 相比 UIDocumentInteractionController 优势
- 可以配置 excludedActivityTypes 添加额外的自定义服务,它还提供了非常好的原生服务的定制化功能。
- 自定义UIActivity服务
1.2. 从 PC 端 iTunes 导入文档
UIFileSharingEnabled
设为 YES,iTunes 可以访问 NSDocumentDirectory 目录。
获取导入的文档
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSFileManager *manager = [NSFileManager defaultManager];
NSArray *fileList = [manager contentsOfDirectoryAtPath:documentsDirectory error:nil];
NSMutableString *filesStr = [NSMutableString stringWithString:@"Documents文件夹中文件的名称: \n"];
1.3. 应用间的文件交换
参考 Uniform Type Identifiers Reference CFBundleDocumentTypes 设置支持的格式,其它 App 调用 UIDocumentInteractionController
或 UIActivityViewController
时就会有 App 的 icon。
- Document Types 已知格式
- Imported UTIs 添加新的格式
1.3.1. Document Types
Additional document type properties
LSHandlerRank
- Owner: 打开一次后会记住 App,下次直接用该 App 打开
- Alternate
- Default
- None: 不会出现在可打开 App 列表
CFBundleTypeRole
- Editor
- Viewer
- Shell
- QLGenerator
- None
1.3.2. 打开外部文件
- LSSupportsOpeningDocumentsInPlace
- UIFileSharingEnabled