Poprawiono w FB SDK 3.8 wydany 18 września 2013. Metody delegat obecnie nazywa raz logowania, niezależnie od tego, ile razy powtarzane zalogowaniu się iz powrotem pojawić się.
Byłem również w stanie odtworzyć to na FB SDK 3.7.1 i we własnym przykładzie programu "Scrumptious"
Jak wspomniano (przynajmniej dla mnie), dzieje się tak dopiero po:
- Logowanie raz
- Wylogowanie
- ponowne zalogowanie (Teraz zdarza)
Co ciekawe kolejność rozmów w sprawie ponownego logowania:
Na pierwszym logowaniu I zaproszeń widzę to:
- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView;
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user;
dniu 2 (i później) loginy widzę :
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user;
- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView;
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user;
co daje mało poręczne obejście ustawiania flagi w metodzie środkowej tak:
- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView {
// Set flag
self.isFirstLoginDone = YES;
}
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user {
// Check
if(self.isFirstLoginDone) {
// Execute code I want to run just once
NSLog(@"fetched");
}
// Don't forget to clear the flag (I guess it shouldn't matter if everything is cleaned up)
self.isFirstLoginDone = NO;
}
Zdarza się również dla mnie na Facebook SDK 3.7.0. Delegat jest wywoływany tylko raz przy pierwszym logowaniu i dwa razy (przez tę samą, nową instancję) we wszystkich kolejnych próbach zalogowania. – owenfi
To jest nadal zepsute w Facebook SDK 3.11 – jstricker
Jestem taki sam z tobą @jstricker, z FB DSK v3.11.1. – wagyaoo