最新的 Facebook SDK 未从 App 注销
Posted
技术标签:
【中文标题】最新的 Facebook SDK 未从 App 注销【英文标题】:Latest Facebook SDK not logged out from App 【发布时间】:2020-05-12 09:43:40 【问题描述】:我更新了我最新的 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];
];
];
//
有人可以帮忙吗?
【问题讨论】:
【参考方案1】:这是有意设计的。如果您需要使用其他帐户登录,则需要从您的移动设备上退出 Facebook 应用程序,可能还需要退出 Safari 中的 facebook.com。
原因是,如果您退出某个应用,它不应该让您退出 Facebook,因为这违反了用户的期望。
上面写着here for Unity SDK,但同样的原则也适用。
在执行 Facebook 范围内注销的游戏中设置注销控件将违反用户的期望。相反,允许用户控制他们在 Facebook 上的登录状态。
【讨论】:
没有别的办法了吗?以上是关于最新的 Facebook SDK 未从 App 注销的主要内容,如果未能解决你的问题,请参考以下文章
iOS Facebook 最新 SDK 无法通过原生 App 但浏览器登录
Firebase admob 未从 pod 或服务器获取最新的 google ad mob SDK
branch.io 深层链接 URL 未从 Facebook 广告在应用程序中传递数据