2

ここに描かれているUIActivityViewControllerの「iCloudドライブに追加」アクションを使用して、iOSデバイスに保存しているファイルをアップロードしたいと思います:

ここに画像の説明を入力

現在、私のカスタム UIActivityItemProvider クラスには、これを返す - (id)item メソッドがあります: [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];
4

1 に答える 1