Abbiamo:
(1) Facebook API basata su un'applicazione web con funzionalità di Facebook OAuth (“la web app FB”)
(2) UIWebView
del browser based su iPad (“Browser”)Come posso ottenere che UIWebView apra la pagina di accesso di Facebook in risposta alla richiesta OAuth su iOS 5 e iOS 6?
nostro l'obiettivo è aprire la pagina di accesso di Facebook per accedere all'app Web FB (1) all'interno del browser basato su UIWebView (2) su iPad.
Esiste un problema in qualche modo simile qui:
http://facebook.stackoverflow.com/questions/11337285/no-longer-able-to-login-to-ios-app-via-oauth-the-page-requested-was-not-found
Tuttavia, la questione di tale questione succede dopo che l'utente inserisce login e password nel modulo di Facebook. Il nostro problema è che non possiamo visualizzare il modulo di login di Facebook in primo luogo. La modifica del tipo di app da "Web" a "Nativo/Desktop", come suggerito in quella domanda, non ha aiutato.
Passi:
1. Aprire la pagina web (semplice pagina HTML) con questo UIWebView
Browser
2. Fare clic sul pulsante “FB web app” lancio in questa pagina
3. Su clic JavaScript tenta di avviare OAuth, che dovrebbe aprire la schermata di login di Facebook per accedere al web app FB
risultato corrente (numero):
su iOS 5. iOS 6. + e + dispositivi
- la nostra pagina web rimane invariata
- La pagina di accesso di Facebook è N OT mostrato (la nostra pagina web è ancora visualizzato)
Su iOS 4.3 (funziona come previsto):
- la pagina di login di Facebook si apre nella stessa UIWebView
oggetto del Browser (sostituisce la nostra pagina web)
Risultato previsto :
- Viene visualizzata la pagina di accesso di Facebook e l'utente può accedere al login Facebook & password
- Funziona su iOS 5. + e iOS 6. + se avviato nel browser Safari su iPad. pagina di login di Facebook si apre in una scheda separata (al contrario, non ci sono schede separate in UIWebView
)
Domanda: Come posso ottenere UIWebView
per aprire Facebook pagina di login in risposta alla richiesta di OAuth su iOS 5+ e iOS 6 +?
Altri dettagli tecnici:
Abbiamo log diversi campi NSURLRequest
dall'interno
-(BOOL)webView(UIWebView*)webView shouldStartLoadWithRequest(NSURLREquest*)request navigationType:…
E abbiamo notato una certa differenza di registri per “correggere” e comportamenti “scorretti”. Ecco come l'esecuzione flussi cercami:
In primo luogo, premere il pulsante di lancio “FB Web App” per avviare OAuth, quindi alcuni casi vanno
iOS 4.3, “corretto”
richiesta di www.facebook.com/dialog/oauth? ...
richiesta a fbwebapp.com
richiesta a m.facebook.com/login.php? ....
--here facebook login appare
iOS 5.0, “incorrect1”
richiesta di www.facebook.com/dialog/oauth~~V~~3rd? ...
richiesta di fbwebapp.com
richiesta di m.facebook. com/login.php? ...
allora può essere
sacco --un di m.facebook.com/login.php?...with prossimo ... in parametri
seguita da errore SQLite
- Bene ora vedo "Mi dispiace, qualcosa è andato storto" pa ge da facebook (si tratta di una prima volta a tutti che incontro esso)
iOS 6.0 “incorrect2”
richiesta di www.facebook.com/dialog/oauth~~V~~singular~~3rd? ...
richiesta di fbwebapp.com
-(void)webView:(UIWebView*)webView didFailLoadWithError:(NSError*)error is invoked with error code -999
Si può vedere che il comportamento dipende sicuramente dalla versione di iOS. Ma il caso comune è che l'errore si verifica sul passaggio di ottenere m.facebook.com/login.php .. URL. Ma questo è tutto ciò che possiamo rilevare.
Stiamo sbattendo la testa contro quel muro per tutto il giorno alla ricerca di soluzioni. Perdutamente.
Potete aiutarci a ottenere la pagina di accesso di Facebook aperta nello UIWebView
in risposta a OAuth?
, potrebbe spiegare di più su questa soluzione? Sono un principiante su iOS, ma ho già provato alcuni esempi di Facebook SDK. See you – owlmsj