Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to prevent screen lock on my application with swift on iOS

Use this:

Objective-C:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift (legacy):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3 and above:

UIApplication.shared.isIdleTimerDisabled = true

Make sure to import UIKit.

Here is the link to the documentation from apple.developer.com.


For Swift 3.0 here are two options depending on where you want to invoke the code:

Inside AppDelegate.swift:

application.idleTimerDisabled = true

Outside AppDelegate.swift:

UIApplication.shared().isIdleTimerDisabled = true


Swift 4

in AppDelegate.swift file, add the following line inside application function:

application.isIdleTimerDisabled = true
        

You can use my little lib Insomnia (Swift 3, iOS 9+) - another nice feature is that you can prevent from sleeping only when charging.

The idleTimerDisabled soultion is okay but you have to remember to set it to false afterwards.