openActiveSessionWithReadPermissions始终显示webview(iOS)

时间:2014-11-12 18:37:31

标签: ios facebook

我有一个iOS应用程序,使用Facebook API已经运行了大约一年。

最近我更新到最新版本的Facebook API。

我注意到的是,当我现在调用openActiveSessionWithReadPermissions时,即使用户在iOS设备的“设置”中登录到Facebook,我也始终会获得Web UI。在过去,我通常会得到一个原生确认对话框。

这是API中的故意更改还是我需要查看我正在做的事情?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以做的一件事就是使用一种不同的方法,您可以根据doc / *指定行为,FBSessionLoginBehaviorUseSystemAccountIfPresent。尝试Facebook登录,更喜欢系统帐户并在必要时回退到快速应用程序切换* /

    facebookSession = [[FBSession alloc] initWithPermissions:[NSArray arrayWithObjects:@"public_profile", @"email",nil]];
    [FBSession setActiveSession:facebookSession];

    [facebookSession openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent
                    completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
        if (!error) {
            [self fetchFacebookProfileData];
        } else {
            if (loginCompleteBlock) {
                if (error.userInfo  && [[error.userInfo objectForKey:@"NSLocalizedFailureReason"] isEqualToString:@"com.facebook.sdk:UserLoginCancelled"]) {
                    loginCompleteBlock (nil, error, YES);
                } else {
                    loginCompleteBlock (nil, error, NO);
                }
            }
            loginCompleteBlock = nil;
        }
    }];