添加到iCloud驱动器与UIActivityViewController

问题描述:

我想用UIActivityViewController的“添加到iCloud驱动器”图为行动上载我存储的iOS设备上的文件:添加到iCloud驱动器与UIActivityViewController

enter image description here

目前在我的自定义UIActivityItemProvider类我有我的 - (id)项目方法返回此: [NSURL fileURLWithPath:fullPath];

FullPath是我创建并希望上传到iCloud驱动器的文件的路径。当我点击“添加到便笺”,邮件活动或我的自定义活动时它工作,但它不适用于iCloud驱动器。它不是使用此文件,而是使用我用于“附加为文件”的电子邮件活动的主题创建默认文件。作为文件内容。这里是我用来呈现UIActivityViewController的代码:

CustomActivity * customActivity = [[CustomActivity alloc]init]; 
CustomItemProvider *itemProvider = [[CustomItemProvider alloc] initWithPlaceholderItem:_itemsArray]; 

NSArray *activityItems = [NSArray arrayWithObjects:itemProvider, NSLocalizedString(@"Attached is a file.", nil), nil]; 

UIActivityViewController *avc = [[UIActivityViewController alloc] 
           initWithActivityItems:activityItems 
           applicationActivities:@[customActivity]]; 

float iOSVersion = [[[UIDevice currentDevice] systemVersion] floatValue]; 

if (iOSVersion < 9.0) 
{ 
    avc.excludedActivityTypes = @[UIActivityTypePostToFacebook, UIActivityTypeAirDrop, UIActivityTypeCopyToPasteboard, UIActivityTypeMessage, UIActivityTypePostToFlickr, UIActivityTypePostToTwitter, UIActivityTypePostToVimeo, UIActivityTypePostToWeibo, UIActivityTypePrint, UIActivityTypeSaveToCameraRoll, UIActivityTypePostToTencentWeibo,UIActivityTypeAssignToContact, UIActivityTypeAddToReadingList]; 
} 
else 
{ 
    avc.excludedActivityTypes = @[UIActivityTypePostToFacebook, UIActivityTypeAirDrop, UIActivityTypeCopyToPasteboard, UIActivityTypeMessage, UIActivityTypePostToFlickr, UIActivityTypePostToTwitter, UIActivityTypePostToVimeo, UIActivityTypePostToWeibo, UIActivityTypePrint, UIActivityTypeSaveToCameraRoll, UIActivityTypePostToTencentWeibo,UIActivityTypeAssignToContact, UIActivityTypeAddToReadingList, UIActivityTypeOpenInIBooks]; 
} 

[self presentViewController:avc animated:YES completion:nil]; 

代码似乎是正确的。但是,iCloud的选项将被添加,只有当:

  1. 用户必须在iCloud中登录的设置。

  2. 你有一些有效的信息可以上传到iCloud上。 (如果您使用的是共享的任何网址,然后在ActivityController未显示的iCloud选项)

它支持这些类型的数据,它可以允许你上传,如笔记,照片,联系人,日历事件,等

我已经试过这样:

NSString *strTextToShare = @"Hi... Friends"; 
UIImage *imgToShare = [UIImage imageNamed:@"wall1.png"]; 
NSURL *urlToShare = [NSURL URLWithString:@"https://www.apple.com"]; 

UIActivityViewController *shareController = [[UIActivityViewController alloc] initWithActivityItems:@[strTextToShare, /*imgToShare, urlToShare*/] applicationActivities:nil]; 
[self presentViewController:shareController animated: YES completion: nil]; 

在上面,如果我尝试添加URL,然后iCloud中未显示。

注意:一次只共享一个项目,那么只有iCloud会显示。

+0

我希望能够上传文件到iCloud Drive。它目前显示这个iCloud选项与我的自定义提供程序返回一个NSURL和我的活动项目是该自定义提供程序和字符串 – HawkEye1194

+0

在真实设备上显示 – HawkEye1194