2015-06-23 7 views
5

Sto tentando di creare un pulsante di condivisione che condividerà un collegamento su Facebook. Il problema è che non voglio avere un pulsante di accesso prima di condividere il pulsante nella mia app, ho solo bisogno di avere un pulsante di condivisione.Finestra di dialogo Native Share di Facebook in swift

Penso che una soluzione potrebbe essere quella di utilizzare pulsanti personalizzati per accedere e condividere pulsanti e unire questi pulsanti in uno. In questo modo se l'utente non ha effettuato l'accesso quando fa clic sul pulsante di condivisione, gli verrà chiesto di accedere. Tuttavia, durante il periodo in cui stavo cercando di raggiungere questo obiettivo, ho trovato che Native Share Dialog è una soluzione ancora migliore perché non richiede alcuna richiesta di accesso.

Ma non riesco a trovare riferimenti/tutorial/esempi o altro in cui la finestra di dialogo Native Share viene utilizzata con swift. Ci sono esempi e cose su Obj-c ma non ho mai usato Obj-c e non ne so nulla.

Ero eccitato se qualcuno ha qualche esempio o qualcuno può indicarmi la giusta direzione su come raggiungere la finestra di dialogo Native Share di Facebook in Swift.

Se non dosare qualcuno ha qualche esempio di utilizzo di pulsanti personalizzati su Swift

+0

Hai bisogno di leggere prima di Facebook fornita una documentazione su Ios SDK. –

+0

In realtà l'ho letto ma tutto è Obj-C e ho problemi con quello. Ecco perché speravo di trovare qualcosa su Swift –

risposta

0

che non è necessario per gestire login da soli in realtà, in iOS se si sta utilizzando di UIActivityViewController SDK per iOS, iOS gestirà per voi .

da documentazione:

Dichiarazione (SWIFT)

init(activityItems activityItems: [AnyObject], applicationActivities applicationActivities: [AnyObject]?) 

Parametri

activityItems La matrice di oggetti dati su cui svolgere l'attività . Il tipo di oggetti nell'array è variabile e dipende dallo sui dati gestiti dall'applicazione. Ad esempio, i dati potrebbero essere costituiti da uno o più oggetti stringa o immagine che rappresentano il contenuto attualmente selezionato di .

Invece di oggetti dati effettivi, gli oggetti in questo array possono essere oggetti che adottano il protocollo UIActivityItemSource, come ad esempio oggetti UIActivityItemProvider. Gli oggetti di origine e provider fungono da proxy per i dati corrispondenti in situazioni in cui non si desidera che fornisca tali dati finché non è necessario.

Questa matrice non deve essere nulla e deve contenere almeno un oggetto. applicationActivities Un array di oggetti UIActivity che rappresentano i servizi personalizzati supportati dall'applicazione. Questo parametro può essere nil.

un codice snipped:

let so:NSURL = NSURL(string:"http://stackoverflow.com") 
let activityVC = UIActivityViewController(
      activityItems: ["Some text here...", so], 
      applicationActivities: nil) 
self.navigationController.presentViewController(activityVC, 
    animated: true, 
    completion: nil) 

In alternativa è possibile utilizzare SDK di Facebook per questo (è necessario aggiungere nel progetto). Anche l'SDK gestirà l'accesso.

Ecco prerequisiti:

Prima di poter condividere su Facebook dalla tua app, è necessario:

Aggiungere il Facebook SDK per iOS per l'ambiente di sviluppo mobile Prendi un applicazione Facebook ID, correttamente configurato e collegato alla tua app iOS Aggiungi l'ID app e il nome visualizzato al file .plist dell'app. Collegare il FBSDKShareKit.framework al progetto.

ecco pagina Facebook SDK:

https://developers.facebook.com/docs/sharing/ios

ecco alcune frammento di codice per la condivisione URL:

let content : FBSDKShareLinkContent = FBSDKShareLinkContent() 
content.contentURL = NSURL(string: self.short_string) 
content.contentTitle = self.title_text 
// ... etc. 

let button : FBSDKShareButton = FBSDKShareButton() 
button.shareContent = content 
+0

In realtà sto usando Facebook SDK 4.1 perché voglio condividere un link. Fino a quando so che sono in grado di condividere un link su fb. Ma quando sto cercando di farlo prima di condividere il collegamento ho bisogno di accedere e queste due funzioni sono in pulsanti separati che non è quello che voglio. Per questo motivo sto cercando di utilizzare le finestre di dialogo Condividi Facebook poiché non richiedono l'accesso. Inoltre non ho familiarità con Obj-C. Ma se hai bisogno di caricare il mio cod che posso –

+0

@IlirVGruda puoi per favore fornire un link ad alcuni documenti su questo, SharingActivityProvider di iOS SDK. Le mie ricerche su google sono risultate nul. – sirvon

21

In realtà ho capire una soluzione.

Queste righe di codice sarebbero implementare Facebook nativa Condividi Dialog a Swift:

let content: FBSDKShareLinkContent = FBSDKShareLinkContent() 
content.contentURL = NSURL(string: self.contentURL) 
content.contentTitle = self.contentTitle 
content.contentDescription = self.contentDescription 
content.imageURL = NSURL(string: self.contentURLImage) 
FBSDKShareDialog.showFromViewController(self, withContent: content, delegate: nil) 
Problemi correlati