OStack程序员社区-中国程序员成长平台

标题: ios - 首次尝试登录时,iOS 中的 Facebook 登录未打开 Safari [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 01:36
标题: ios - 首次尝试登录时,iOS 中的 Facebook 登录未打开 Safari

我的应用登录屏幕

enter image description here

第一次尝试 facebook 登录按钮无法打开 safari 浏览器,而第二次尝试它工作正常。

以下是我尝试过的代码:

FBSDKLoginManager *manager = [FBSDKLoginManager new];
manager.loginBehavior = FBSDKLoginBehaviorBrowser;
NSArray *permissions = @[@"email",@"public_profile"];
[manager logInWithReadPermissions:permissions fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error){

    if(error) {
        [self showAlertWith"Oops!" message"Login Failed, try again" handler:nil];
        return;
    }
    if(result.isCancelled) {
        [self showAlertWith"Oops!" message"Login Failed, try again" handler:nil];
        return;
    }else {
        [[[FBSDKGraphRequest alloc] initWithGraphPath"me"
                                           parameters{@"fields": @"picture, name, email"}]
         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id userinfo, NSError *error) {
             if(!error) {
                 if([FBSDKAccessToken currentAccessToken]) {
                     [self makeGraphRequest];
                 }
             }else {
                 EKLog(@"error %@", error);
             }
         }];
    }
}];

第一次点击登录按钮时会调用loginWithReadPermission,但不会调用回调 block ,而再次点击则会调用回调处理程序。任何帮助将不胜感激。



Best Answer-推荐答案


如果可行,您可以尝试一种解决方案!

FBSDKLoginManager *manager 声明为实例变量或属性,并在 viewDidload 中对其进行初始化,如,

 FBSDKLoginManager *manager = [FBSDKLoginManager new];

然后使用!!这可能是由于本地声明而发生的!

关于ios - 首次尝试登录时,iOS 中的 Facebook 登录未打开 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44236733/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4