ios - 在 UIwebView 应用程序中使用 Facebook 登录

标签 ios swift uiwebview facebook-login fbsdk

在我的 Rails 应用程序中,用户登录使用 Facebook。它工作得很好。

现在我计划为我的 Rails 应用程序开发一个 iOS 应用程序(UIWebView app)。即在 WebView 中加载我的网站。

我担心的是我应该只拥有 one view controller加载网站或two view controllers , 第一个使用 iOS FB SDK 的 native FB 登录和其他 Controller 来加载网站?

目前我尝试使用一个 Controller ,当我点击 Login using Facebook 时(在网站上)在 iOS 应用程序中,Facebook 登录在 safari 中打开,输入凭据后无限期出现空白页面。

最佳答案

您好,您可以使用一个 View Controller 吗?对于使用 Facebook 登录,您可以引用本教程。 integrate login with facbook

重要步骤

第 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 block 。 希望这会有所帮助。

关于ios - 在 UIwebView 应用程序中使用 Facebook 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34327089/

相关文章:

ios - 从模式中选择数据后如何在 UITableViewCell 中刷新 UITextField

ios - TableView 中的不同长度单元格在滚动 Swift 时使 View 对齐

swift - 将 FLEX 与 Swift 项目结合使用

ios - 加载HTMLString : analoge in SFSafariViewController

ios - 我可以更新协议(protocol)扩展中的指定属性吗?

ios - 在标签和边框之间添加填充

ios - 在 UITextField 在 iOS 中激活后显示键盘时,试图限制 UIScrollView 内的滚动区域

ios - 由于未捕获的异常 'FirebaseShutdown' 而终止应用程序,原因 : 'Firebase error

ios - UIWebView 中的搜索栏

ios - 不推荐使用UIWebView API,Apple将停止接受使用UIWebView API的应用程序的提交