2015-04-27 9 views
46

Per favore, puoi dirmi se sto facendo degli errori?iOS: come condividere testo e immagini sui social network?

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

In fase di esecuzione quando si seleziona l'icona di Facebook il testo non è presente, viene visualizzata correttamente l'immagine.
Il mio xcode è 6.3.1, testato su iPad.

+0

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

risposta

93

Sembra che un recente aggiornamento dell'applicazione Facebook abbia sostituito l'attività di condivisione di Facebook integrata con una che ignora il testo di stato. Se rimuovi l'app di Facebook dal dispositivo, il testo verrà visualizzato utilizzando il codice che hai. Se hai installato l'app di Facebook ottieni immagini, URL ma non il testo

Le norme di Facebook non ti permettono di precompilare i messaggi di stato e richiedono che tutti i contenuti siano generati dall'utente - mentre capisco l'intenzione dietro a questo, Personalmente ritengo che in molti casi sia un po 'stupido - Ad esempio nel mio gioco voglio precompilare il punteggio dell'utente, ma ora non posso, quindi l'utente viene presentato con una finestra di dialogo vuota. Probabilmente rimuoverò semplicemente l'opzione di condivisione di Facebook perché nessuno lo userà mai adesso.

Questo response da Facebook conferma che il comportamento legato alla progettazione

+10

hai ragione, una scelta senza senso ... l'utente può semplicemente modificare e cambiare prima di inviarlo al suo profilo. In questo modo Facebook perderà molte condivisioni. – user3290180

+0

Grazie per avermelo fatto notare, mi stava facendo impazzire! Che sciocca mossa di Facebook. – Ash

+0

Solo #hashtag funziona per me. Il testo normale e gli URL non funzionano più? –

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

Sareste in grado di aggiungere un contesto a questa risposta? Da dove provengono gli oggetti '' GooglePlus'' e '' meta''? Hai testato questo codice con l'ultima app di Facebook installata? – Paulw11

+0

Sì, ho provato, GooglePlus e sono la Sottoclasse personalizzata di UIActivity –

+0

Non hai ancora mostrato il codice per 'precious' - Presumibilmente questa è un'implementazione della condivisione usando l'SDK di Facebook. L'uso dell'SDK di Facebook richiede l'accordo con i termini di Facebook che proibiscono la pre-popolazione del testo. – Paulw11

8

Ecco la risposta a Swift. Potrebbe non essere d'aiuto per il tuo problema, ma potrebbe essere utile con qualcuno che cerca questo titolo. Basta creare un pulsante ed è azione. E installa l'azione del pulsante in questo modo.

Nota: è necessario accedere a Facebook o Twitter andando alle impostazioni. Allora fai così.

@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) 

    } 
Problemi correlati