Dopo aver integrato Facebook Login, la condivisione su Facebook o Facebook Gaming, alcuni eventi nell'app vengono registrati e raccolti automaticamente per Gestione eventi, a meno che tu non disabiliti la registrazione automatica degli eventi nell'app. Consigliamo a tutti gli sviluppatori di app di usare Facebook Login, la condivisione su Facebook o Facebook Gaming per capire come funziona questa funzionalità. Per maggiori dettagli sul tipo di informazioni raccolte e su come disabilitare la registrazione automatica degli eventi nell'app, consulta Registrazione automatica degli eventi nell'app.
Ulteriori dettagli sull'SDK per iOS di Facebook sono disponibili qui.
Questa guida spiega in dettaglio come abilitare la condivisione dalla tua app per iOS su Facebook. Quando gli utenti effettuano una condivisione dalla tua app, i contenuti vengono visualizzati nel loro diario e nel feed degli amici.
Prima di aggiungere la condivisione alla tua app, devi:
.plist
dell'app;FBSDKShareKit.framework
al tuo progetto.L'app non deve precompilare i contenuti da condividere, in quanto ciò violerebbe la Normativa della Piattaforma Facebook; consulta le Normative per gli sviluppatori.
Primi passi: SDK per iOSOgni tipo di contenuto ha un'interfaccia che puoi usare per rappresentarlo, conforme a SharingContent
. Una volta modellati i contenuti, aggiungi all'app un'interfaccia di condivisione conforme a Sharing
oppure usa la classe ShareDialog
fornita.
Quando gli utenti condividono link dalla tua app su Facebook, con il link da condividere viene incluso anche un elemento contentURL
. Crea i contenuti da condividere per i link con il modello ShareLinkContent
.
Ecco un esempio di come puoi attivare la condivisione:
guard let url = URL(string: "https://developers.facebook.com") else { // handle and return } let content = ShareLinkContent() content.contentURL = url let dialog = ShareDialog( viewController: self, content: content, delegate: self ) dialog.show()
Nota: se la tua app condivide link agli store di iTunes o Google Play, non pubblicheremo immagini o descrizioni da te specificate, ma informazioni relative all'app estratte direttamente dallo store tramite il Webcrawler. Potrebbero non essere incluse immagini. Per l'anteprima della condivisione di un link a iTunes o Google Play, inserisci l'URL nel debugger di condivisione.
Gli utenti possono condividere foto dalla tua app su Facebook tramite la finestra di condivisione o un'interfaccia personalizzata:
Crea i contenuti da condividere per le foto con il modello SharePhotoContent
.
func imagePickerController( _ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any] ) { guard let image = info[.originalImage] as? UIImage else { // handle and return return } let photo = SharePhoto( image: image, userGenerated: true ) var content = SharePhotoContent() content.photos = [photo] // use the content }
Gli utenti che usano la tua app possono condividere video su Facebook tramite la finestra di condivisione o un'interfaccia personalizzata:
Crea i contenuti da condividere per i video con il modello FBSDKShareVideoContent
. Per una lista di tutti gli attributi, consulta il riferimento per FBSDKShareVideoContent
.
func imagePickerController( _ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any] ) { let video: ShareVideo if #available(iOS 11, *) { guard let videoAsset = info[.phAsset] as? PHAsset else { return } video = ShareVideo(videoAsset: videoAsset) } else { guard let url = info[.referenceURL] as? URL else { return } video = ShareVideo(videoURL: url) } }
Gli utenti che usano la tua app possono condividere su Facebook una combinazione di foto e video tramite la finestra di condivisione. Tieni presente le seguenti indicazioni:
Crea i tuoi contenuti multimediali da condividere con il modello ShareMediaContent
.
let photo = SharePhoto(...) let video = ShareVideo(...) var content = ShareMediaContent() content.media = [photo, video]
Dopo aver gestito il contenuto creando un modello, puoi attivare le finestre di condivisione o messaggio.
Su iOS, Facebook usa pulsanti nativi per attivare le condivisioni.
Il pulsante Condividi permette agli utenti di condividere contenuti sul diario di Facebook, su quello di un amico o su un gruppo. Il pulsante Condividi chiama una finestra di condivisione. Per aggiungere un pulsante Condividi, inserisci il seguente snippet di codice nella tua visualizzazione:
var button = FBShareButton() button.shareContent = content // Add button to view
Il pulsante Invia permette agli utenti di inviare privatamente foto, video e link ad amici e contatti tramite l'app Facebook Messenger. Il pulsante Invia chiama una finestra di messaggio. Per aggiungere un pulsante Invia, inserisci il seguente snippet di codice nella tua visualizzazione:
var button = SendButton() button.shareContent = content // Add button to view
Se l'app Messenger non è installata, il pulsante Invia sarà oscurato. Per controllare se il pulsante Invia può essere usato nel dispositivo corrente, usa la proprietà isImplicitlyDisabled
di SendButton
:
Per usare i metodi di condivisione di Facebook, definisci i tuoi contenuti come descritto nella sezione precedente relativa alla modellazione e chiama la finestra di condivisione. Ad esempio, per condividere un link tramite la finestra di condivisione:
guard let url = URL(string: "https://developers.facebook.com") else { // handle and return } let content = ShareLinkContent() content.contentURL = url let dialog = ShareDialog( viewController: self, content: content, delegate: self ) dialog.show()
Nelle versioni precedenti dell'SDK per iOS, per aprire la finestra di condivisione l'app doveva controllare che fosse installata l'app nativa Facebook. Se la persona non l'aveva installata, era necessario fornire il codice per chiamare una finestra di dialogo di fallback.
Ora l'SDK controlla automaticamente la presenza dell'app nativa Facebook. Se non è installata, l'SDK reindirizza le persone al browser predefinito e apre la finestra di dialogo delle Notizie.
Se l'app nativa Facebook è installata, gli utenti visualizzano la schermata di condivisione di iOS invece di essere reindirizzati all'app nativa Facebook per iOS.
La finestra di messaggio reindirizza all'app nativa Messenger per iOS, restituendo il controllo alla tua app una volta pubblicato il post.
MessageDialog(content: content, delegate: delegate).show()
Nota: attualmente iPad non supporta la finestra di messaggio.
iOS include una finestra di condivisione nativa che consente agli utenti di pubblicare aggiornamenti di stato, foto, video e link su Facebook. Consente inoltre di impostare il pubblico per il post e aggiungere a quest'ultimo un tag per la posizione. L'SDK di Facebook supporta l'uso di questo controller nativo; la schermata è quella visualizzata nella maggior parte dei casi quando si chiama la finestra di condivisione di Facebook.
L'uso della finestra di condivisione di iOS è soggetto alle Normative per gli sviluppatori, inclusa la sezione 2.3, secondo cui le app non devono precompilare i contenuti (ovvero il campo initialText) della finestra con contenuti non inseriti dall'utente dell'app.
Inoltre, l'API usa il blocco di stile usato in altre parti dell'SDK di Facebook. Per mostrare la finestra di condivisione nativa di iOS, usa:
let dialog = ShareDialog( viewController: self, content: content, delegate: nil ) dialog.mode = .shareSheet dialog.show()
Tieni presente che l'argomento viewController
è obbligatorio per visualizzare la finestra di condivisione.
Puoi specificare che un singolo hashtag venga visualizzato con una foto, un link o un video condivisi. L'hashtag viene visualizzato anche nella finestra di condivisione e gli utenti possono rimuoverlo prima della pubblicazione.
Di seguito è riportato un esempio di come aggiungere un hashtag alla condivisione di un link.
let content = ShareLinkContent() guard let url = URL(string: "https://developers.facebook.com") else { return } content.contentURL = url content.hashtag = Hashtag("#MadeWithHackbook")
Con App Links puoi inserire link alla tua app nei post pubblicati su Facebook tramite l'app stessa.
Quando gli utenti cliccano su un post pubblicato su Facebook usando la tua app, quest'ultima verrà aperta. Puoi anche inserire link a contenuti specifici all'interno dell'app.
Se usi il simulatore per testare la condivisione nella tua app, provando a condividere video o foto visualizzerai un errore. Devi installare Facebook per iOS, che include la finestra di condivisione. L'opzione non è supportata nel simulatore.
È possibile testare solo la condivisione di link, per cui l'installazione di Facebook per iOS non è necessaria. Per testare altri tipi di condivisione, configura un apposito dispositivo su cui installare Facebook per iOS.