我已经更新了最新的Facebook SDK。
FBSDKLoginManager * login = [[FBSDKLoginManager alloc] init];login.loginBehavior = FBSDKLoginBehaviorNative;
loginBehavior不适用于此。现在,我的应用不会每次都注销时说:
单击“取消”后,我没有任何其他登录权限的选择。
我的代码:
- (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];
}
}];
}
}
}
}];
// }
}
有人可以帮忙吗?
这是预期的设计。如果您需要使用其他帐户登录,则需要从移动设备中退出Facebook应用程序,也可能要退出Safari中的facebook.com。
原因是,如果您退出某个应用程序,则它不应该退出Facebook,因为它违反了用户的期望。
它表示为here for Unity SDK,但适用相同的原理。
[在执行Facebook范围内注销的游戏中具有注销控件会违反用户的期望。相反,应允许用户在Facebook本身上控制其登录状态。