- Document Types
- UIActivityViewController & Share Extension
- UIFileSharingEnabled
Document Types
在Info.plist中声明可以处理的文件类型,其他应用在打开文件了,就可以选择自己的应用。
-
发起端
UIDocumentInteractionController
-
接收端
配置Info.plist,添加支持的Document Types
UIActivityViewController & Share Extension
Share Extension和Document Types是不同的机制,Share Extension和平时常用的社交分享是一个意思。
-
发起端
NSString *textToShare = @"分享的标题。"; UIImage *imageToShare = [UIImage imageNamed:@"loading_error"]; NSURL *urlToShare = [NSURL URLWithString:@"http://www.baidu.com"]; NSArray *activityItems = @[textToShare,imageToShare, urlToShare]; UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil]; //不出现在活动项目 activityVC.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll]; [self presentViewController:activityVC animated:YES completion:nil]; // 分享之后的回调 activityVC.completionWithItemsHandler = ^(UIActivityType _Nullable activityType, BOOL completed, NSArray * _Nullable returnedItems, NSError * _Nullable activityError) { if (completed) { NSLog(@"completed"); //分享 成功 } else { NSLog(@"cancled"); //分享 取消 } };
-
接收端
如果你的App想要接收其他App分享的数据,就需要创建一个Share Extension
UIFileSharingEnabled
UIFileSharingEnabled又是一个东西,设置为YES,可以通过iTunes或者Xcode访问应用沙盒下的Documents目录。
注意
- Document Types
- UIActivityViewController & Share Extension
以上两者在选择接收应用是,UI是一样的,但是机制是完全不同的。
网友评论