2012-10-16 7 views
24

Nella mia applicazione, l'utente apre uno WebView per le versioni mobili della pagina del profilo di Facebook (http://m.facebook.com/some_page). Il mio problema è che quando si apre il WebView, l'utente è tenuto a inserire nome utente e password per Facebook. Dato che ho già un token di accesso a Facebook tramite FB SDK e l'utente potrebbe aver installato l'applicazione di Facebook, presumo che ci sia un modo per saltare questa fastidiosa fase di accesso a Facebook quando si apre lo WebView.Come utilizzare il token di accesso di Facebook nella webview dell'applicazione Android

In altre parole, come si utilizza il token di accesso già presente nell'applicazione WebView?

+2

vedere questo: http://stackoverflow.com/questions/10101030/facebook-authentication-in-webview?rq=1 –

+0

thx ZuzooVn, ma il link non è avere la risposta quello che volevo. Voglio sapere che se il modo (usare il token di accesso che già ha nella WebView dell'applicazione) può funzionare o meno – joy

+0

hai provato il tut nello sviluppatore fb https://developers.facebook.com/docs/mobile/android/build/ –

risposta

1

Dalla mia comprensione, non è possibile. Il token di accesso che ottieni per la tua app può essere utilizzato solo in combinazione con le credenziali API della tua app. Cioè il token di accesso funziona solo nelle chiamate che contengono anche la chiave e il segreto della tua app. Anche se si riuscisse a trovare un modo per trasferirli in una WebView (che probabilmente non è coperta da), probabilmente si dovrebbe fare in modo che WebView utilizzi l'SDK di Android (perché FB controllerebbe la fonte della chiamata). Ecco perché ti suggerisco di non poterlo fare.

Non è inoltre possibile che WebView utilizzi i cookie dell'utente che potrebbe avere nel suo browser di magazzino, poiché ogni WebView ha il proprio contesto per motivi di sicurezza.

Se si utilizza frequentemente una WebView per FB nella propria app, è possibile estrarre il cookie di autenticazione dalla prima WebView e quindi inserirlo in istanze successive utilizzando CookieSyncManager. Oppure è possibile salvare lo stato dell'istanza del primo WebView e quindi riutilizzarlo. Queste sono solo idee che potrebbero o potrebbero non funzionare; Non li ho controllati.

+2

La ringrazio molto per il tuo aiuto, usa il cookiemanager è lavoro, come hai detto tu, ogni volta che webview è stato url devo aggiungere i cookie che ottengono allo stesso tempo di ottenere token di accesso. ad esempio wb = (WebView) this.findViewById (R.id.share_wb); String url = "http://m.facebook.com/sharer.php?u=www.douban.com"; CookieSyncManager.createInstance (questo); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setCookie (url, Facebook.cookieString); CookieSyncManager.getInstance(). Sync(); wb.loadURL (url); – joy

1

È possibile memorizzare AccessToken separatamente in Proprietà e controllare se si utilizza Webview, quindi passare tale accesso e quando l'utente utilizza Ti.Facebook quindi utilizzare un altro AccessToken.

-2

Leggere questo progetto con attenzione e cercare ... ho provato questo esempio nel mio progetto ..è funziona ..

Bu prima di prendere questo esempio, è necessario creare una pagina di facebook e ottenere un applicazione- id, da utilizzare in questo progetto

https://github.com/ddewaele/AndroidFacebookSample

+1

Questa sembra essere solo un'integrazione di Facebook generica (e una che utilizza la vecchia API) - questo non usa WebViews da nessuna parte. –

Problemi correlati