How to know coming back from Facebook? - ios

How is it possible to test / get notification about Facebook iOS app is just left?
Implemented Facebook Login button, and when coming back from FB login screen, need to do some extra steps in my app. But viewDidAppear is not get called in that view controller.
Do you have any idea? Need to use AppDelegate methods?

You can add an observer for UIApplicationWillEnterForeground notification.
And you could add some logic right before calling the facebook button, to check if the app has entered background because of that or simply because the user has pressed home button.

Related

Facebook login in an iOS app

I am wondering how things should work when using facebook login in an iOS app.
I have set up a trial app in order to understand the facebook login process within an iOS app.
I have a “Login with Facebook” button. When I tap it for the first time, it goes asking for permissions, then I tap YES and it comes back to my app.
At this point all is fine, I have a “Log out” button. I tap it, I get logged out as expected and can see the “Login with Facebook” button again.
Now here comes the question. When I tap the “Login with Facebook” button for the 2nd (or Nth) time, it shows me the facebook Confirm page displaying:
“You have already authorized THIS APP”
with a Cancel and an OK button.
Is this the way it should be?
It seems to me that the user knows he has already authorized THIS APP and does not need to be prompted each time.
In other words after tapping the “Login with Facebook” button it should not go through the facebook Confirm page.
Am I wrong?
If NO, why is this happening in my app?

back to previous controller before application enters background

i am developing an ios application that needs the user to login in order to get in to the system, if the user logged in and go to one of the view controllers in the application, then press home button. Now if he choose to open the application again (the application will enter forground), the application must redirect the user to the view controller he was viewing before he press the home button. Moreover, any data the user enters must be there.
Any Idea about how can I implement this in Xcode ?
Any help will be appreciated. Thanks :)
Save the viewController before app goes to background in the function applicationWillResignActive. And when app comes to foreground go to that viewController. If you have navigation based app, then call in applicationWillEnterForeground
[navigationController popToViewController:yourViewController];

ios: programmatically ask for Game Center sign-in?

I have a simple question, but I’ve looked through Apple’s documentation and done some searching and I can’t find the answer to it.
Is it possible to programmatically pull up Game Center’s sign-in view? I have a UIButton that requires Game Center, and if the client does not sign in when the app is opened (iOS pulls up the sign-in view at launch), I want to provide a second chance for the user to sign in.
I'm assuming you're calling this GKLocalPlayer method on launch: -setAuthenticateHandler: (>= iOS7) or -authenticateWithCompletionHandler: (<= iOS6)
If the user cancels the presented login screen, calling these methods again does nothing, or rather, the completion handler is called with an error. The user will then need to login to GameCenter through the GameCenter app or through the Settings app. (While testing, you can login through the GameCenter app, then logout. After that the screen can be presented in your own app again.) You can show an UIAlertView telling the user to login through the GameCenter app.
Alternatively, and I don't know if this is allowed/approvable, but in iOS7 the authenticateHandler has a viewController parameter holding the login screen. If you store this login view controller in an instance variable and the user cancels login, you can present the login screen again later using a UINavigationController.
If you try to present the saved login view controller with -presentViewController:animated:completion: the view controller's Cancel button no longer works, but using a UINavigationController hides the Cancel button and allows navigation back to your own view controller.
You'll also need to hide the login screen manually after the user logs in by responding to GKPlayerAuthenticationDidChangeNotificationName. It doesn't seem like developers were intended to be able to do this, so it may not pass approval, but it works!

How to return to app if user cancel Facebook Login?

I m working on facebook login. Everything is fine, when I tap on the login button it will take me to safari (or FB app) and ask me for FB login.
my question is how to make safari return to my app if I decide not to login and hit cancel button? its currently taking me to my facebook main page after hitting cancel and is not useful
thanks in advance!
I don't know how to do it exactly as you suggest but what you could do is create another view controller with a web view inside of it, and a navigation bar at the top that has a cancel button on it. This way they could log on to facebook from within the app, so they don't have to switch between things which can be a little lengthy! It would also allow an easy cancel button with 'dismissModalViewController' or whatever it has changed to in iOS6. I believe this should work :)

Facebook application authentication cancel button issue in iPhone

How do I get to know when the cancel button is clicked from a Facebook appliaction in iPhone while authentication.
We can get the callback for other through delegate functions, but I don't know how to get the callback for the cancel button.
Facebook provides a delegate method which you can use:
- (void)fbDidNotLogin:(BOOL)cancelled;
You have to implement FBSessionDelegate and this method will be called if the person clicks on the cancel button.

Resources