2014-09-29 4 views
34

È possibile avere una condivisione sul collegamento di Facebook su un sito Web che apre la finestra di dialogo di condivisione nell'app nativa?È possibile generare un collegamento "Condividi su Facebook" che apra l'app nativa di Facebook su Android/iOS/mobile invece della finestra di dialogo della condivisione web?

comportamento attuale:

In questo momento facendo clic sul link di condivisione di Facebook si apre la finestra di condivisione web-based, che è male dato che la maggior parte degli utenti mobili di Facebook stanno utilizzando l'applicazione nativa, quindi non è iscritto sul loro browser . Di conseguenza, la finestra di dialogo della condivisione Web invita gli utenti a immettere le proprie credenziali utente, il che potrebbe portarli a non condividere, dopo tutto.

comportamento ideale:

Facendo clic sul condividi su Facebook link porta alla finestra di quota nel Facebook app nativa, in cui l'utente è già firmato in

Grazie in anticipo per l'aiuto.!

+3

Stai parlando quando fai clic su un pulsante di condivisione in una pagina Web su un dispositivo mobile? Penso che sia sempre fatto con l'SDK JavaScript di Facebook che non usa l'app. Se ti trovi in ​​un'app installata, puoi utilizzare gli SDK Android o iOS per condividerli con l'app FB. Dubito che una pagina web possa interagire con app come questa. – Novaterata

+0

Questo sembra essere l'impulso di PhoneGap. Le webapp ibride possono essere più o meno cloni di un sito Web, ma accedere alle app native. – Novaterata

+0

@Walker hai trovato qualche soluzione di lavoro per questo? –

risposta

23

A partire da ora, c'è in modo non ufficiale per raggiungere questo obiettivo. È che può essere implementato da Facebook, inoltrando la finestra di dialogo della condivisione Web utilizzando il proprio schema di URL personalizzato. Pertanto, se si utilizza officially documented way per aprire questa finestra di dialogo si otterrà questa funzionalità senza ulteriori modifiche non appena sarà disponibile.

Il modo più semplice per utilizzare la finestra di condivisione web ufficiale, senza preliminari, è quello di creare un collegamento a questo URL:

https://www.facebook.com/dialog/share? 
    app_id=145634995501895 
    &display=popup 
    &href=URL_TO_SHARE 
    &redirect_uri=RETURN_URL 

in cui si sostituisce URL_TO_SHARE e RETURN_URL con i valori corretti con codifica URL. Oppure il numero include il JS-SDK di Facebook e utilizza il pulsante di condivisione classico o altri metodi descritti in sharing on the web.

Solo per completezza: nelle app native su iOS e Android è possibile collegarsi direttamente all'app Facebook se l'utente ha installato l'app Facebook. Vedi condivisione da iOS o android. Poiché questo non è sempre il caso, è necessario verificare utilizzando l'apposito SDK di Facebook della rispettiva piattaforma e il fallback alla finestra di dialogo basata sul web.

Su un sidenote: vorrei fortemente scoraggiarvi dall'usare gli schemi URL non ufficialmente registrati registrati dall'app Facebook. Mentre potrebbero funzionare se il sito web viene visitato da un dispositivo con un'app di Facebook installata, diventano collegamenti morti o strani avvisi del browser sui dispositivi senza l'app di Facebook installata, in particolare qualsiasi PC o Mac. Anche se controlli tutti questi casi, Facebook has already changed their URL-Schemes e potresti farlo di nuovo in qualsiasi momento, interrompendo il tuo link (s) o - forse peggio - portando a comportamenti non definiti.

+3

Hi come è risposta è a partire dal 2014, ma nel 2017 c'è qualche cose per rendere possibile aprire app nativa dal Web per condividere qualcosa? –

+0

E 'un uomo di dolore ... E 'a 5 linee di Android, come mai questo è così difficile su iOS? – Endran

+0

@VishalThoriya è vero, questa risposta è di tre anni. Ma per quanto ne so per il problema del PO (condivisione tramite app nativa da un sito web) è ancora fino a data. –

0

So che è stato un paio d'anni, ma per chi può riguardare:
Dai un'occhiata a questa risposta; Xcode : sharing content via Action Sheet.

Permettetemi di copiare quella risposta overhere così:

Swift link

let shareText = "Hello, world!" 
if let image = UIImage(named: "myImage") { 
    let vc = UIActivityViewController(activityItems: [shareText, image], applicationActivities: []) 
    presentViewController(vc, animated: true, completion: nil) 
} 

provare per esercitazioni