FBSDKLoginManager を使用してログインし、最新の FBSDK を使用しています。私はそれをすべて機能させていますが、ログインリダイレクト後に 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 Web ビュー コントローラーは何もしません。
したがって、SFSafariViewController は白/空白です。完了ボタンは何もしません。そして、私はそれを閉じることができません。
loginManager.loginWithReadPermissions メソッドからのコールバックも取得しません。
誰もこれを経験しましたか?