Prevent application from entering background, requiring a code to close app - ios

I would like to add functionality to my iPad app such that, when the home button is pressed and my app is about to enter the background, a message box pops up requesting a code. Only if the correct code is entered will the application go into the background, otherwise the app will not close.
Is this possible?

Short answer, no it's not possible.

Related

Killing an iOS app programmatically

I have an app when a specific action fires I close the app and ask the user to reopen it again.
The problem is when the app executes exit(0) the app stays in the apps stack (when I click the home button twice). I want it to be killed completely so that viewDidLoad() will be executed again when the app opens.
You cannot terminate an app on it's own.
From Apple's Human User Guidelines...
Don’t Quit Programmatically
Never quit an iOS application programmatically because people tend to
interpret this as a crash. However, if external circumstances prevent
your application from functioning as intended, you need to tell your
users about the situation and explain what they can do about it.
Depending on how severe the application malfunction is, you have two
choices.
Display an attractive screen that describes the problem and suggests a
correction. A screen provides feedback that reassures users that
there’s nothing wrong with your application. It puts users in control,
letting them decide whether they want to take corrective action and
continue using your application or press the Home button and open a
different application
If only some of your application's features are not working, display
either a screen or an alert when people activate the feature. Display
the alert only when people try to access the feature that isn’t
functioning.
Have a look at this answer: https://stackoverflow.com/a/8491688/742298

Detect Home button long press event in background

How can I detect Home button long press like 4 second or more event in my app which is already running in background? Is it possible to so because app is already running in background and if user long press home button of the device for 4 second or more can i detect the event in my background running app and if possible than will Apple approve this for app store?
No that is not possible. As you should know, a long press on the home button brings up Siri. Your app would interfere with that. Also, I don't believe Apple allows access to the home button event like that.
Lastly; while your app is in the background, it goes into a suspend state after a short while and no events run. The only thing the app can do is receive push notifications - unless you have been given special access to audio / gps functions from Apple themselves.
Short answer : Not possible. not at least with public method and want your app to be on Appstore.
For the Research purpose, you might want to try use private method and do your R&D with it. it might be possible.

Detect if home button is pressed while the app is running in the background

I need a way for my app to know if the home button is pressed, while the app is running in the background. If the home button is pressed, something is gonna be added to a list inside the app. Is that possible somehow?
If your app is in the background, your app wont receive any updates. Furthermore, there isn't any way to hook into the home button click even if your app is in the foreground.
Perhaps there is a private api way to handle this, but your app certainly won't be able to both achieve this goal and be in the Apple App Store. Sorry!
In case you wanted some idea why Apple doesn't allow this, it's because they don't want the home button switch's default behavior to be altered. See this:
10.5 Apps that alter the functions of standard switches, such as the Volume Up/Down and Ring/Silent switches, will be rejected

ios sdk show alert without launching the app

I have incorporated custom URL feature in my ios application. I would like to pop an alert on the browser itself when the application is relaunched from a screen other than home screen. I know if the app is relaunched from home screen or not. I am now popping an alert in the application it self. I want to throw the alert with out launching the application may be on the browser itself.
Thanks.
Since you can not do ANY UI stuff without having you app running, this will not be possible.
I think that is not possible, as when you are firing the URL, the control is in iOS Safari app. (Not in our custom app), and whatever you can do is - write code in your app only. So until your app gets launched, your code will not get to run, and alert won't be shown.
I am not sure if there is any other way around, this is just my own thinking.

ipad forcing login screen

I've seen a couple of threads regarding the use of login screens but just doesn't require what I need. When my application first launches the login screen is present, they enter in the username/password and is verified on the server. If successful they can go to other sections of the application. As this application contains confidential documents, every time the application goes to sleep or the home button is pressed and upon re-entry I show a UIAlertView to confirm their password.
What I would prefer is that when the application goes to sleep the UIAlertView is shown so I'll leave it as is but when the home button is pressed, I want to force them to go back to the original login screen. I've been playing with the exit(0) but apple strongly advise against that but it forces the application to exit and then when the application opens again the login screen is displayed. I'm try to replicate this functionality without the exit(0).
Terminating your app is probably not the right approach. Consider: How do I programmatically quit my iPhone application?.
There is no API provided for gracefully terminating an iPhone
application. Under the iPhone OS, the
user presses the Home button to close
applications. Should your application
have conditions in which it cannot
provide its intended function, the
recommended approach is to display an
alert for the user that indicates the
nature of the problem and possible
actions the user could take - turning
on WiFi, enabling Location Services,
etc. Allow the user to terminate the
application at their own discretion.
You should reconsider your first approach with the UIAlertView if the use of login screens doesn't meet your needs.

Resources