我正在使用最新的 FBSDK,使用 FBSDKLoginManager 登录。我已经全部工作了,但我无法弄清楚的一件事是为什么 SFSafariViewController 在登录重定向后完全没有响应?
这是代码:
- (void) login:(void(^)(NSError *error, NSString * token)) completion {
FBSDKLoginManager * manager = [[FBSDKLoginManager alloc] init];
manager.loginBehavior = FBSDKLoginBehaviorNative;
if([FBSDKAccessToken currentAccessToken]) {
NSLog(@"already logged in");
NSLog(@"%@",[FBSDKAccessToken currentAccessToken]);
completion(nil,[FBSDKAccessToken currentAccessToken].tokenString);
return;
}
[manager logInWithReadPermissions:@[@"public_profile"] fromViewController:nil handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
dispatch_sync(dispatch_get_main_queue(), ^{
NSLog(@"%@",error);
NSLog(@"fb token: %@",[FBSDKAccessToken currentAccessToken].tokenString);
if(error) {
completion(error,nil);
return;
}
completion(nil,[FBSDKAccessToken currentAccessToken].tokenString);
});
}];
}
这就是发生的事情:
- SFSafariViewController 打开
- Facebook 提示登录
- 回调发生在 AppDelegate.openURL:options: (我通过调用 FBSDKApplicationDelegate.application:openURL:sourceApplication:annotation 返回)。
- Safari 网络视图控制器什么都不做。
所以 SFSafariViewController 是白色/空白的。完成按钮什么都不做。而且我无法关闭它。
我也没有从 loginManager.loginWithReadPermissions 方法获得回调。
有没有人经历过这个?
