最新的Facebook SDK未从应用程序注销

问题描述 投票:0回答:1

我已经更新了最新的Facebook SDK。

FBSDKLoginManager * login = [[FBSDKLoginManager alloc] init];login.loginBehavior = FBSDKLoginBehaviorNative;

loginBehavior不适用于此。现在,我的应用不会每次都注销时说:

enter image description here

单击“取消”后,我没有任何其他登录权限的选择。

我的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
 return  [[FBSDKApplicationDelegate sharedInstance] application:application
                                     didFinishLaunchingWithOptions:launchOptions];
}
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation
{
    return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                          openURL:url
                                                sourceApplication:sourceApplication
                                                       annotation:annotation];
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [FBSDKAppEvents activateApp];
}

 #pragma mark-5.Facebook Button Click
- (IBAction)bnfacebookClicked:(id)sender
{
    UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;
        while (topController.presentedViewController) {
               topController = topController.presentedViewController;
            }


    NSArray * allViewController = self.navigationController.viewControllers;
    NSLog(@"COntroller%@",allViewController);


    //Facebook Button click...
    txtEmailLogin.text = nil;
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(profileUpdated:) name:FBSDKProfileDidChangeNotification object:nil];


      FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
           [login logOut];
            NSLog(@"TOken%@",[FBSDKAccessToken currentAccessToken]);
    [login logInWithPermissions:@[@"public_profile", @"email"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
    {
               if (error)
               {
               } else if (result.isCancelled)
               {
               }
               else
               {
                   _fbRequesting = NO;


                   if ([result.grantedPermissions containsObject:@"public_profile"])
                   {
                       if ([FBSDKAccessToken currentAccessToken])
                       {
                           [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"name, email, picture"}]
                            startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id user, NSError *error)
                            {
                                if (!error)
                                {
                                    ViewSignIn.hidden=false;
                                    [objappdelegate startActivityIndicator];
                                    typesocial=1;
                                    Userdetails=user;
                                    stremailidfinal=[NSString stringWithFormat:@"%@",[Userdetails valueForKey:@"email"]];
                                    [self SocialLoginSignup:Userdetails];

                                }
                            }];
                       }
                   }
               }
           }];
   // }

}

有人可以帮忙吗?

objective-c xcode facebook
1个回答
0
投票

这是预期的设计。如果您需要使用其他帐户登录,则需要从移动设备中退出Facebook应用程序,也可能要退出Safari中的facebook.com。

原因是,如果您退出某个应用程序,则它不应该退出Facebook,因为它违反了用户的期望。

它表示为here for Unity SDK,但适用相同的原理。

[在执行Facebook范围内注销的游戏中具有注销控件会违反用户的期望。相反,应允许用户在Facebook本身上控制其登录状态。

© www.soinside.com 2019 - 2024. All rights reserved.