4

在我的 Rails 应用程序中,用户使用 Facebook 登录。它运行良好。现在我计划为我的 Rails 应用程序

创建一个 iOS 应用程序( )。UIWebView app即在WebView 中加载我的网站。

我关心的是我应该只使用one view controller哪个加载网站two view controllers,还是使用第一个用于本地 FB 登录iOS FB SDK和其他控制器加载网站?

目前我已经尝试使用一个控制器,当我在 iOS 应用程序中单击Login using Facebook(在网站中)时,会在 Safari 中打开 Facebook 登录,输入凭据后会无限期地出现一个空白页面。

4

2 回答 2

0

问题是 iOS 不允许独立的 UIWebView 应用程序。所以解决方法是:

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

这就是我通过两个 ViewController 设计 iOS UIWebview 应用程序的方式。

于 2017-04-06T17:45:11.660 回答
0

嗨,你可以给你一个视图控制器。对于使用 Facebook 登录,您可以参考本教程。将登录与 facebook 集成

重要步骤

第 1 步:在开发者应用上创建 Facebook 应用并配置您的 info.plist 文件

第 2 步:登录操作代码

- (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]);
                                   }
                               }];
     }];
}

第三步:处理回调

- (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];

}

第 4 步:然后根据您的要求处理 FBSession 块。希望这会有所帮助。

于 2015-12-17T05:57:38.627 回答