Facebook Login 正在 Facebook Native 应用程序中打开,而不是在 ios 6.0 的 iphone 设备上的 Safari 浏览器中打开

Posted

技术标签:

【中文标题】Facebook Login 正在 Facebook Native 应用程序中打开,而不是在 ios 6.0 的 iphone 设备上的 Safari 浏览器中打开【英文标题】:Facebook Login is opening in Facebook Native app not in safari browser on iphone device with ios 6.0 【发布时间】:2012-12-18 11:39:42 【问题描述】:

您好,我正在使用 FBSession 打开登录视图,它在 ios5.0 和 ios 6.0 模拟器中打开 Safari 登录,但在 ios 6.0 iPhone 中打开 Facebook APP 而不是 safari。请告诉我是什么原因,我该如何解决?这是我的 Facebook 登录代码。

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI 
    return [FBSession openActiveSessionWithReadPermissions:nil
                                              allowLoginUI:allowLoginUI
                                         completionHandler:^(FBSession *session,
                                                             FBSessionState state,
                                                             NSError *error) 
                                             [self sessionStateChanged:session
                                                                 state:state
                                                                 error:error];
                                         ];


/*
 * Callback for session changes.
 */
- (void)sessionStateChanged:(FBSession *)session
                      state:(FBSessionState) state
                      error:(NSError *)error

    switch (state) 
        case FBSessionStateOpen:
            if (!error) 
                // We have a valid session
                NSLog(@"User session found");

                if ([[IntegrationManager sharedInstance] facebookDidLogin:nil]) 
                    [self.window.rootViewController dismissModalViewControllerAnimated:YES];
                ;

            
            break;
        case FBSessionStateClosed:NSLog(@"Fbsession close");
        case FBSessionStateClosedLoginFailed:
            [FBSession.activeSession closeAndClearTokenInformation];
            break;
        default:
            break;
    

    [[NSNotificationCenter defaultCenter]
     postNotificationName:FBSessionStateChangedNotification
     object:session];

    if (error) 
        UIAlertView *alertView = [[UIAlertView alloc]
                                  initWithTitle:@"Error"
                                  message:error.localizedDescription
                                  delegate:nil
                                  cancelButtonTitle:@"OK"
                                  otherButtonTitles:nil];
        [alertView show];
    

【问题讨论】:

【参考方案1】:

为了用户的方便,启动 facebook 应用程序而不是打开网站。这样做是为了让用户不必再次登录,也称为单点登录。

如果您使用的是 Facebook iOS SDK,则您无能为力,也不应该对此采取任何措施。

【讨论】:

不,它应该也适用于 iOS 5 和 4。只要安装了 Facebook 应用程序。在 iOS 6 中,您可以使用本机 Facebook 支持,如果用户允许您的应用访问该 Facebook 帐户,它将向用户弹出问题。

以上是关于Facebook Login 正在 Facebook Native 应用程序中打开,而不是在 ios 6.0 的 iphone 设备上的 Safari 浏览器中打开的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 quickblox(iOS)登录 facebook

使用 Parse 登录 Facebook 不起作用

Scaling Memcache At Facebook

Facebook iOS SDK 和护照-facebook 身份验证

Facebook iOS SDK:获取专辑封面图片

Flutter Facebook Login with Firebase 使用 flutter_login_facebook 0.2.1