1、接收:在info.plist中保存相关设置
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>OFFICE Document</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>com.microsoft.word.doc</string>
<string>com.microsoft.powerpoint.ppt</string>
<string>com.microsoft.excel.xls</string>
<string>com.adobe.pdf</string>
</array>
</dict>
</array>
并在AppDelegate中实现方法
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
if ([url.scheme isEqualToString:@"file"]){
NSString *fileNameStr = [url lastPathComponent];
NSData *data = [NSData dataWithContentsOfURL:url];
}
}
简单实现接收文件
2、只要其他APP完成以上info.plist设置,就可以分享文件到其他App
首先在info.plist中添加
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
<string>public.composite-content</string>
</array>
<key>UTTypeIdentifier</key>
<string>com.adobe.pdf</string>
<key>UTTypeDescription</key>
<string>PDF文档</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.mime-type</key>
<string>application/pdf</string>
<key>public.filename-extension</key>
<array>
<string>pdf</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeIdentifier</key>
<string>com.microsoft.word.doc</string>
<key>UTTypeDescription</key>
<string>Word文档</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.mime-type</key>
<string>application/msword</string>
<key>public.filename-extension</key>
<array>
<string>doc</string>
<string>docx</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeIdentifier</key>
<string>com.microsoft.excel.xls</string>
<key>UTTypeDescription</key>
<string>Excel Document</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.mime-type</key>
<string>application/vnd.ms-excel</string>
<key>public.filename-extension</key>
<array>
<string>xls</string>
</array>
</dict>
</dict>
</array>
弹出UIDocumentInteractionController分享
UIDocumentInteractionController *documentController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:self.url.path]];
documentController.delegate = self;
documentController.UTI = [self getUTI];
[documentController presentOpenInMenuFromRect:CGRectZero
inView:self.view
animated:YES];
- (NSString *)getUTI
{
NSString *typeStr = [self getFileTypeStr:self.url.path];
if ([typeStr isEqualToString:@"PDF"]) {
return @"com.adobe.pdf";
}
if ([typeStr isEqualToString:@"Word"]){
return @"com.microsoft.word.doc";
}
if ([typeStr isEqualToString:@"PowerPoint"]){
return @"com.microsoft.powerpoint.ppt";
}
if ([typeStr isEqualToString:@"Excel"]){
return @"com.microsoft.excel.xls";
}
return @"public.data";
}
- (NSString *)getFileTypeStr:(NSString *)pathExtension
{
if ([pathExtension isEqualToString:@"pdf"] || [pathExtension isEqualToString:@"PDF"]) {
return @"PDF";
}
if ([pathExtension isEqualToString:@"doc"] || [pathExtension isEqualToString:@"docx"] || [pathExtension isEqualToString:@"DOC"] || [pathExtension isEqualToString:@"DOCX"]) {
return @"Word";
}
if ([pathExtension isEqualToString:@"ppt"] || [pathExtension isEqualToString:@"PPT"]) {
return @"PowerPoint";
}
if ([pathExtension isEqualToString:@"xls"] || [pathExtension isEqualToString:@"XLS"]) {
return @"Excel";
}
return @"其它";
}
11537254840_.pic_hd.jpg
网友评论