MineはObjective-CのiOSアプリでログイン機能のためにFacebook SDKを統合しています。iOSアプリケーションと統合されたfacebookログインページの間欠終了
私は私のボタンを表示するmainviewコントローラを持っています。ボタンをクリックすると、以下のコードがボタンハンドラ上で実行されます。それが断続的にFacebookのログインページがいくつかの時間のための無人/あるとして残されている場合のFacebookからログインページには、我々のアプリ内のWebViewに表示され
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login
logInWithReadPermissions: @[@"public_profile", @"email"]
fromViewController:self
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
NSLog(@"Process error %@",error.description);
}
else if (result.isCancelled) {
NSLog(@"Cancelled");
}
else {
if ([result.grantedPermissions containsObject:kEmail]) {
[self fetchfbUserInfo];
}
else {
NSLog(@"User Declined permissions");
}
}
}];
は、コンソールで次のエラーでを閉じます。
FBSDKLog:ERROR:SFSafariViewControllerの親ビュー コントローラが却下されました。これは、UIAlertControllerからのログイン をトリガしている場合に発生します。代わりに、一番上のビュー コントローラが時期尚早に解除されないようにしてください。
は、いくつかのリバースエンジニアリングを行なったし、FBSDKApplicationDelegateクラスのこのデリゲートメソッドは、エラーメッセージのために呼び出さ取得しなければならないことがわかりました。
- (void)viewControllerDidDisappear:(FBSDKContainerViewController *)viewController animated:(BOOL)animated
{
if (_safariViewController) {
[FBSDKLogger singleShotLogEntry:FBSDKLoggingBehaviorDeveloperErrors
logEntry:@"**ERROR**:\n The SFSafariViewController's parent view controller was dismissed.\n"
"This can happen if you are triggering login from a UIAlertController. Instead, make sure your top most view "
"controller will not be prematurely dismissed."];
[self safariViewControllerDidFinish:_safariViewController];
}
}
なぜログインページについてどのような可能性のある原因(またはアプリの認証ページalreayログインしている場合)は、クローズ/それ自身に退去しますか?
あなたが見つかりましたか?私は同じ問題を持っています – Laurent
私は同じ問題を抱えています。 – erdemgc
私は同じ問題、これのための任意の解決策がありますか? –