2014-06-25 9 views
6

Korzystam z następującego kodu, aby udostępnić obraz, tekst i adres URL za pomocą UIActivityViewController. Wszystko działa dobrze, z wyjątkiem tego, że gdy użycie wybierze AirDrop, otrzyma "nie może otrzymać wszystkich tych przedmiotów w tym samym czasie". Jeśli udostępniam tylko obraz, to działa AirDrop. Potrzebuję tekstu i adresu URL do poczty e-mail, Facebooka, metod udostępniania Twittera.Komunikat błędu Airdrop: "nie można odbierać wszystkich tych elementów w tym samym czasie"

Czy istnieje sposób na zachowanie tekstu i adresu URL i sprawienie, aby AirDrop udostępniał tylko obraz, podczas gdy Facebook, e-mail, twitter metody udostępniania nadal używają tekstu i adresu URL wraz z obrazem, który próbuję udostępnić?

NSString *text = [NSString stringWithFormat:@"I made this image using %@ iOS app. Here is the link to download it:", [CloudHelper appName]]; 
NSURL *url = [NSURL URLWithString:APP_URL];  

UIActivityViewController *activityController = 
[[UIActivityViewController alloc] 
initWithActivityItems:@[text, url, myImage] 
applicationActivities:nil]; 

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

Odpowiedz

8

Byłbyś chcą tworzyć i dzielić się trzy obiekty, które są zgodne z UIActivityItemSource, gdzie jeden Zwraca ciąg, jedno zdjęcie i jeden adres URL. Następnie, gdy wywołanie zwrotne zlecające element jest wywoływane, sprawdzasz, który typ działania został wybrany (Facebook, Twitter, zrzut, itd.) I zwracasz wartość zerową, jeśli ten element nie ma zastosowania.

Tak więc w przypadku zrzutu, tylko źródło elementu obrazu zwróci wartość zerową. Możesz zapoznać się z airdrop sample code, aby zapoznać się z przykładami implementacji UIActivityItemSource

Powiązane problemy