2015-04-27 17 views
46

Proszę, czy możesz mi powiedzieć, czy robię błędy?iOS: jak udostępniać tekst i obraz w sieciach społecznościowych?

NSString *sharedMsg=[NSString stringWithFormat:@"Hello world"]; 
UIImage* sharedImg=[UIImage imageNamed:@"image"]; 
NSArray* sharedObjects=[NSArray arrayWithObjects:sharedMsg, sharedImg, nil]; 
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] 
       initWithActivityItems:sharedObjects applicationActivities:nil]; 
activityViewController.popoverPresentationController.sourceView = self.view; 
[self presentViewController:activityViewController animated:YES completion:nil]; 

W czasie wykonywania kiedy wybrać ikonę Facebook tekst brakuje, obraz jest wyświetlany poprawnie.
Moje xcode to 6.3.1, testowane na iPadzie.

+0

https://iosdevcenters.blogspot.com/2017/08/how-to-share-content-with.html –

Odpowiedz

93

Wygląda na to, że ostatnia aktualizacja aplikacji Facebook zastąpiła wbudowaną akcję udostępniania na Facebooku taką, która ignoruje tekst stanu. Jeśli usuniesz aplikację Facebook z urządzenia, tekst zostanie wyświetlony przy użyciu posiadanego kodu. Jeśli masz zainstalowaną aplikację na Facebooku, otrzymujesz obrazy, adresy URL, ale nie tekst. Zasady Facebooka nie pozwalają na wstępne wypełnianie komunikatów o stanie i wymagają, aby cała treść była generowana przez użytkownika - podczas gdy rozumiem intencje, które za tym stoją, Osobiście uważam, że w wielu przypadkach jest to głupie - na przykład w mojej grze chcę wstępnie wypełnić punktację użytkownika, ale teraz nie mogę, więc użytkownik otrzymuje puste okno dialogowe. Prawdopodobnie po prostu usunę opcję udostępniania na Facebooku, ponieważ nikt jej nie użyje.

Ten response z Facebook potwierdza, że ​​zachowanie jest zgodne z projektem

+10

masz rację, bezsensowna wybór ... użytkownik może po prostu edycję i zmianę to przed wysłaniem do jego profilu. W ten sposób Facebook straci wiele udziałów. – user3290180

+0

Dzięki za wskazanie tego, to doprowadzało mnie do szału! Cóż za głupi ruch na Facebooku. – Ash

+0

Tylko #hashtag działa dla mnie. Czy zwykły tekst i adresy URL już nie działają? –

0
NSString* [email protected]"Hello world"; 
NSURL *myWebsite = [NSURL URLWithString:@"http://www.website.com/"]; 
// UIImage * myImage =[UIImage imageNamed:@"myImage.png"]; 
NSArray* [email protected][text,myWebsite]; 
UIActivityViewController * activityViewController=[[UIActivityViewController alloc]initWithActivityItems:sharedObjects applicationActivities:nil]; 

activityViewController.popoverPresentationController.sourceView = self.view; 
[self presentViewController:activityViewController animated:YES completion:nil]; 
+0

Czy byłbyś w stanie dodać kontekst do tej odpowiedzi? Skąd pochodzą obiekty "GooglePlus" i "profity"? Czy przetestowałeś ten kod z zainstalowaną najnowszą aplikacją Facebook? – Paulw11

+0

Tak, przetestowałem, GooglePlus i język angielski są niestandardową podklasą UIActivity –

+0

Nadal nie pokazałeś kodu dla "użytkownika" - Prawdopodobnie jest to implementacja udostępniania za pomocą pakietu SDK Facebooka. Korzystanie z pakietu Facebook SDK wymaga zgody z warunkami na Facebooku, które zabraniają wstępnej popularyzacji tekstu. – Paulw11

8

Oto odpowiedź w Swift. To może nie pomóc twojemu problemowi, ale może być pomocne dla kogoś, kto szuka tego tytułu. Po prostu stwórz przycisk i to jest akcja. I zainstaluj akcję przycisku w ten sposób.

Uwaga: Aby przejść do swojego facebooka lub Twittera, należy się zalogować. Więc to lubisz.

@IBAction func onShareTouched(sender: AnyObject) { 

    print("share") 

    let myShare = "My beautiful photo! <3 <3" 
    let image: UIImage = UIImage(named: "yourImageNameHere") 

    let shareVC: UIActivityViewController = UIActivityViewController(activityItems: [(image), myShare], applicationActivities: nil) 
    self.presentViewController(shareVC, animated: true, completion: nil) 

    } 
Powiązane problemy