Keep screen from locking ionic/cordova - ionic2

So y’all know how when google maps is running and when you press the lock screen on your phone to turn the screen off and press it again to turn it back on, the lock screen doesn’t show up and it opens directly in the application.
Any ideas of how to do this with Ionic/Cordova? Or does anyone know how google does it?

Related

What is the proper UX for user to exit an iPhone app?

Is the iPhone "device Home button" (circle button that is part of the hardware at bottom center) the standard way that users exit an iPhone app?
I don't have an actual iPhone device yet (looking for the iPhone6 to come down in price a bit), am just working with Xcode simulators. When I run my iPhone Swift apps, they are always in full screen mode.
On Android, there are a few navigation buttons built into the OS that appear at the bottom of the screen - Back, Home, Open Apps. And in that OS you can give a directive to exit full screen to reveal those OS buttons.. which then allows the user to easily exit the app if they'd like to.
In looking at the iPhone apps on the simulator, I notice they don't have this kind of UX.
What are the best practices around iPhone users
A. Sending an app to the background ?
B. Quitting/Closing an app ?
To send an app to the background, hitting the home button is sufficient.
To quit an app, tapping the home button twice shows you all the open apps; you can then swipe an app to "kill" (terminate) it.
However, here is a recent post by the excellent John Gruber explaining why killing an app should only be a last resort: https://daringfireball.net/2017/07/you_should_not_force_quit_apps
Note: on the iPhone Simulator, the command-shift-H key combo is equivalent to hitting the home button.
To send an app to the background:
Press the Home button.
To "quit" or "close" an app:
Press the Home button.
That's all the UX expected of an iOS app... and none if it is actually provided by your app. iOS manages it for you; you just have to deal with your app's lifecycle methods to respond to the user leaving and re-entering your app.
iOS doesn't expect users to know or care about the difference between "background" and "closed/quit" in most cases. You enter an app, you leave an app, that's it.
And the way iOS works under the hood, there is no difference in most cases — when you leave an app, it's not "running in the background", it's "frozen" or "suspended": that is, in memory but not running. That way the OS can get it usable again near-instantly if the user comes back, or instantly reclaim that memory if another process needs it.
The user can also invoke the multitasking UI (double click home button, or in iOS 11 on iPad swipe up from bottom edge) and swipe an app away, but this is equivalent to the "kill" or "force quit" actions seen in other operating systems — it's primarily for situations where an app is misbehaving. This isn't part of your app's UX either; it's also provided by iOS.
As noted in the Daring Fireball post linked from #TimKokesh's answer, there are some circumstances where an app "in the background" isn't "frozen" but has some limited ability to run, the Settings app has UI to help the user keep tabs on what are using (and abusing) that ability, and those are some of the only cases where it's reasonable for a user to "force quit" apps.
If you want to have a real iPhone look-alike simulator on your development environment, yes it's available with New Xcode-9/Beta version. It shows real hardware buttons(volume, lock, home buttons) which you can press and feel like a real device. If you are interested you can download it from here
On other Xcode environments, you can go to home screen by pressing the keys: Cmd + Shift + H

Not able to check whether user opens app from lock screen OR from home button press on ios 8

I am developing an application where i want to know whether user opens the app from Home button press OR by auto lock/By pressing the Lock button of device. I was google for the things, but for the solutions are not compatible with ios 8.
I have gone through below link but not working in my case:
Detecting when app is becoming active from lockscreen vs other on iOS7.
please help me. Getting stuck on this point from couple of days.
Any help will be appreciated.

iOS caches the application screen when clicking the home button for the device

we are developing hybrid application on Worklight.
After the user launches the application on iOS, he will see the login screen, providing his credentials, he is inside our application.
Now, if the user clicked the home button for iOS before "logging out" from the app, the iOS will take a snapshot and store it inside the device cache.
By using IExplorer, I can see this screen cached, which in our situation a high critical issue.
How can I a override this screen with a white screen, in case the user clicked the home button of the iOS device it will be populated immediately, and the device will not snapshot the user main screen.?
Is there any thumbnail I can add to my nativeResource folder for iOS to solve this issue?
thank you.
I encourage you to look at the Worklight Knowledge Center. In most cases, you will find your answer.
To control the snapshot taken by the OS when moving to the background, you need to use the following API methods, depending on your needs:
WL.App.BackgroundHandler.setOnAppEnteringBackground and WL.App.BackgroundHandler.setOnAppEnteringForeground

iOS app printing while running in the background

I have an iOS app that automatically prints a receipt to a thermal receipt printer when an order comes in and works great. However, if the app is in the background, it does not print. Is it possible to allow it to print while running in the background?
There are only a few occasions you are allowed to run certain tasks in the background. See the Apple documentation: https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW20
For example: playing audio, fetching the user location, sending notification or certain data from network in the background is allowed. Running your own logic during a background service is, as far as I understood, not allowed (like running it one hour after your app is gone to sleep/background mode).
The only thing that is perhaps an option, is to utilize the time your app has to finish an task after the home button is pressed. There is a timelimit however of 10 or 15 minutes.
I don't know if this is suitable for your situation?
See this stackoverflow question: iOS application executing tasks in background
And this particular piece of code to run the task in the background: https://stackoverflow.com/a/11809211/2740112
Another option is to use Guided Access, which is introduced since iOS6.
With it, you can prevent exiting the app. It's only usefull when using only the app on the device that needs to be used.
Information below from http://www.assistiveware.com/support/faq/page/136:
To turn on Guided Access, do the following:
Go to the Settings app on your device's home screen.
Tap General.
Tap Accessibility.
Under the Learning section (scroll down if necessary), tap Guided Access.
Toggle Guided Access to ON.
Tap Set Passcode and enter a four digit passcode. You will be prompted to enter it again.
(Optional) Toggle Enable Screen Sleep to ON if you want to be able to put your device to sleep with the Power button, otherwise the Power button will be disabled.
To start Guided Access for an app and prevent it from being exited, do the following:
Open the app that you want to lock in.
Quickly press your device's Home button three times to bring up the Guided Access menu.
Tap the Start button in the top right corner of the screen to activate Guided Access. A message stating "Guided Access Started" will briefly appear.
To end Guided Access for an app so it can be exited, do the following:
Quickly press your device's Home button three times to bring up the Guided Access menu.
Enter your four digit passcode when prompted.
Tap the End button in the top left corner of the screen to end Guided Access. A message stating "Guided Access Ended" will briefly appear.
Here's the knowledgebase article of Apple: http://support.apple.com/kb/ht5509

iOS Safari, when running our web-app in stand alone mode, crashes iOS in background

We're developing a web app that extensively uses Cavas 2D for some demos, and is successfully running on both iOS and Android devices. Recently we've added stand-alone mode for iOS devices, so user has to "Add-To-Home-Screen" and run it using screen icon, just like regular app.
What happens recently is that after 10-12 times we start the web app on iPhone4:
Status bar (initially set to 'black') suddenly turns white and we cannot exit Safari (by pressing home button).
If we try to make screen shot (home + power button), shutter sound is played as if screen shot was taken and saved.
If we try to lock the device (power button), screen turns black, but no action after that can bring unlock-screen or any screen for that matter - display remains black.
We can only do reset by pressing home + power for 10 seconds after this point.
If we do not lock the device, web app continuously work with no issues at all, it does not crash, but cannot exit it (double click on home button also has no result).
Has anyone experienced this with their web apps?
Any guidance in how to debug this would be highly appreciated. We've tried using Safari on OSX, connect iPhone to it and use Develop -> iPhone menu but no luck so far.
Thanks in advance!
I would start trying to debug by running XCode with the iPhone connected to the computer.
In XCode open "Organizer" and go to the tab "Devices".
You should see your device there, from which you can view the iOS console. That might be able to tell you what is going wrong with the phone stops responding.
I don't think you have to put the phone in development mode (or be a paid developer) to see the iOS console.

Resources