Inicie session con Facebook en la aplicación UIwebView

En mi aplicación de Rails, el usuario inicia session usando Facebook. Y está funcionando perfectamente.

Ahora estoy planeando tener una aplicación de iOS ( UIWebView app ) para mi aplicación de Rails. es decir, cargar mi website dentro de un WebView.

Mi preocupación es que debería tener one view controller que cargue el website o two view controllers , el primero para el inicio de session de FB nativo utilizando iOS FB SDK y otro controller para cargar el website.

Actualmente, he probado con un controller y cuando hago clic en Login using Facebook (que se encuentra en el website) en la aplicación iOS, se abre un inicio de session de Facebook en safari y, después de ingresar las cnetworkingenciales, una página en blanco aparece indefinidamente.

Hola, ¿podrías ver el controller? Para iniciar session con Facebook, puede referir este tutorial. integrar inicio de session con facbook

Pasos importantes

Paso 1: crea una aplicación de Facebook en la aplicación de desarrollador y configura tu file info.plist

Paso 2: Código de acción de inicio de session

 - (IBAction)signInWithFacebookClicked:(id)sender { [FBSession openActiveSessionWithReadPermissions:@[@"public_profile",@"email",@"user_friends"] allowLoginUI:YES completionHandler: ^(FBSession *session, FBSessionState state, NSError *error) { // The session is open. Get the user information and update the UI. [FBRequestConnection startWithGraphPath:@"me" parameters:@{@"fields": @"first_name,last_name, email"} HTTPMethod:@"GET" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { if (!error) { // Set the use full name. NSLog(@"FBresponse: =>%@",result); } else{ NSLog(@"%@", [error localizedDescription]); } }]; }]; } 

Paso 3: maneja la callback

 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication]; } - (void)applicationDidBecomeActive:(UIApplication *)application { // Handle the user leaving the app while the Facebook login dialog is being shown // For example: when the user presses the iOS "home" button while the login dialog is active [FBAppCall handleDidBecomeActive]; } 

Paso 4: luego maneja el bloque FBSession según tu requerimiento. Espero que esto te ayude.

El problema es que iOS no permite una aplicación independiente UIWebView. Entonces la solución es:

 Have two ViewController, First ViewController would be used for native FB login. Second ViewController would load the webapp. 

Así es como diseñé la aplicación iOS UIWebview, con dos ViewControllers.