2015-04-10 23 views
5

Dal momento che l'aggiornamento per Facebook 4.x, il seguente non funziona più:FBAppCall rimosso da Facebook aggiornamento 4.x - ritorno alla applicazione dopo Facebook login

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{ 
    return [FBAppCall handleOpenURL:url sourceApplication:@"yyyyxxxxyyyxxxx" withSession:[PFFacebookUtils session]]; 
} 

sia come application: handleOpenURL è stato deprecato, e FBAppCall ha stato rimosso per essere sostituito con BFURL.

Ho provato a leggere la Bolts documentation che suggerisce quanto segue:

- (BOOL)application:(UIApplication *)application 
      openURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplication 
     annotation:(id)annotation { 

    BFURL *parsedUrl = [BFURL URLWithInboundURL:url sourceApplication:sourceApplication]; 

//do something with parsedUrl if neccessary 

... ma poi io non sono sicuro di cosa fare con il BFURL. In precedenza, questo metodo solo conteneva:

return [[FBSDKApplicationDelegate sharedInstance] application:application 
                   openURL:url 
                sourceApplication:sourceApplication 
                  annotation:annotation]; 
    } 

ma ora ogni volta che provo ad entrare a FB (w/o l'applicazione FB installato), esce a Safari, approva l'applicazione, torna a mia app, ma si riavvia esso, e non riesce ad accedere. Dopo circa 4 tentativi successivi, a volte accede. Presumo questo perché non sto gestendo correttamente il ritorno all'app, ma non sono sicuro di cosa aggiungere.

+0

Che cosa si intende per riavviare la vostra applicazione? Se non stai utilizzando la funzionalità Link app, non dovresti utilizzare BFURL e dovresti chiamare solo l'applicazione FBSDKApplicationDelegate: openURL: sourceApplication: annotation: method. –

+0

Per riavvio intendo che si carica come se riprendesse da un arresto anomalo, anziché tornare all'ultima pagina in cui ero. In precedenza questo è stato assicurato utilizzando il metodo FBAppCall, tuttavia questo è stato rimosso nell'aggiornamento di Facebook 4.x, quindi mi chiedo come sostituire tale funzionalità ... – Smikey

+1

Ciao ** @ Smikey ** hv hai la risposta esatta ??? Se sì allora condividi il link o la soluzione ... –

risposta

0

Se si utilizza FBSDKLoginManager, quindi per i metodi loginInWith * Autorizzazioni, è possibile specificare anche un gestore. Il gestore è il callback per quando l'app viene riavviata (inserire qualsiasi logica utilizzata nella callback di FBAppCall per l'accesso in questo gestore).

Quindi, collegare la classe del delegato dell'app a FBSDKApplicationDelegate come descritto nello Getting Started guide. Ciò dirà all'SDK di chiamare il tuo gestore.

Maggiori informazioni sul login su iOS here.

+0

cosa succede se si utilizza il pulsante di accesso? L'ho aggiunto al mio viewcontroller a livello di codice, e facendo clic su esso si passa automaticamente al mio metodo 'didCompleteWithResult' – CQM

4

sostituire il vecchio di ritorno con questo:

return [[FBSDKApplicationDelegate sharedInstance] application:app openURL:url sourceApplication:options[UIApplicationLaunchOptionsSourceApplicationKey] annotation:options[UIApplicationLaunchOptionsAnnotationKey]];