我有一个支持 Facebook 登录的应用程序,出于某种原因 FBSDKLoginManager logInWithReadPermissions: fromViewController: handler:
安装后第一次运行我的应用程序时不会调用它。如果我只是杀死我的应用程序(即使没有尝试登录 Facebook 或做任何事情:尝试在第一次打开时登录或不尝试登录不会改变任何东西)并再次打开它,它会完美运行。
为什么?
(我已经检查过传递给该方法的 View Controller 不是 nil 并且是当前 View Controller )
这是我的登录代码:
+(void)loginWithFacebookWithCompletion:(ULCompletion)completion{
[[[FBSDKLoginManager alloc] init] logInWithReadPermissions:FACEBOOK_READ_PERMISSIONS fromViewController:[ULMasterViewController instance] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if(result.token){
...
}
[...]
其余的无关紧要,因为根本不调用完成 block (即使有错误也没有)。我有
FACEBOOK_READ_PERMISSIONS
硬编码:#define FACEBOOK_READ_PERMISSIONS (@[@"user_friends", @"user_birthday", @"email", @"user_photos"])
最后,
[ULMasterViewController instance]
是有效的(不是 nil,并且在层次结构中有它的 View (否则它会提示 View 不在层次结构中,也尝试过))。
最佳答案
这在我的情况下工作。
1.在界面中创建FLoginManager的实例。
FBSDKLoginManager *manager
2. 在 ViewDidLoad 中初始化。
manager = [FBSDKLoginManager new]
3、最后使用FBLoginManager这个实例调用登录权限方法。
关于ios - FBSDKLoginManager logInWithReadPermissions : fromViewController: handler: completion not called on app first run,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40089124/