我的应用登录屏幕,
第一次尝试 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-推荐答案 strong>
如果可行,您可以尝试一种解决方案!
将 FBSDKLoginManager *manager 声明为实例变量或属性,并在 viewDidload 中对其进行初始化,如,
FBSDKLoginManager *manager = [FBSDKLoginManager new];
然后使用!!这可能是由于本地声明而发生的!
关于ios - 首次尝试登录时,iOS 中的 Facebook 登录未打开 Safari,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/44236733/
|