2

würde Ich mag UIActivityViewController gebrauchen „In dem iCloud Drive“ Aktion hier im Bild, eine Datei zu laden, die ich auf dem iOS-Gerät speichern:In dem iCloud-Laufwerk mit UIActivityViewController

enter image description here

Zeit in meinen benutzerdefinierten UIActivityItemProvider Klasse Ich habe meine - (ID) Item-Methode, die das zurückgibt: [NSURL fileURLWithPath: fullPath];

FullPath ist der Pfad zu der Datei, die ich erstelle und auf das iCloud-Laufwerk hochladen möchte. Es funktioniert, wenn ich auf "Zu Notizen hinzufügen", auf die Mail-Aktivität oder auf meine benutzerdefinierte Aktivität klicke, aber nicht auf iCloud. Anstatt diese Datei zu verwenden, erstellt sie eine Standarddatei mit dem Betreff, den ich für die E-Mail-Aktivität "Attached is a file" verwendet habe. als Dateiinhalt. Hier ist der Code, den ich verwende, um den UIActivityViewController zu präsentieren:

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]; 

Antwort

1

Code scheint zu korrigieren. Aber iCloud Option wird nur hinzugefügt werden, wenn:

  1. Benutzer in icloud in den Einstellungen anmelden müssen.

  2. Sie haben eine gültige Information, die Sie auf iCloud hochladen können. (Wenn Sie mit einem beliebigen URL in Sharing dann iCloud Option nicht in ActivityController gezeigt)

sie diese Art von Daten unterstützt es erlauben, können Sie hochladen, wie Notizen, Fotos, Kontaktdaten, Kalenderereignis,

usw.

ich habe dies versucht:

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]; 

In oben, wenn ich URL hinzuzufügen versucht dann iCloud nicht gezeigt. Und auch

Hinweis: Zu einer Zeit, wenn nur ein Element teilen Sie, dann wird nur iCloud angezeigt.

+0

Ich möchte eine Datei auf iCloud Drive hochladen können. Derzeit wird diese iCloud-Option angezeigt, wobei mein benutzerdefinierter Anbieter eine NSURL und meine Aktivitätselemente diesen benutzerdefinierten Anbieter und eine Zeichenfolge – HawkEye1194

+0

auf einem echten Gerät zurückgibt – HawkEye1194

Verwandte Themen