Cómo evitar el bloqueo de pantalla en mi aplicación con swift en iOS

113

¿Cómo puedo evitar el bloqueo de pantalla solo cuando uso Navegación?

Waze tiene la opción de hacer eso, ¿cómo puedo hacer esto en mi aplicación?

alvarogalia
fuente

Respuestas:

241

Utilizar este:

C objetivo:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift (legado):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3 y superior:

UIApplication.shared.isIdleTimerDisabled = true

Asegúrese de importar UIKit.

Aquí está el enlace a la documentación de apple.developer.com.

atwalsh
fuente
4
Swift debería serUIApplication.sharedApplication().idleTimerDisabled = true
Doug
3
Swift 3:UIApplication.shared.idleTimerDisabled = true
funkenstrahlen
2
Cambió aUIApplication.shared.isIdleTimerDisabled = true
Lucas Farah
1
donde agregar esta linea? No tengo AppDelegate.swift porque estoy usando react-native
Pradnyanand Milind Pohare
@PradnyanandMilindPohare puedes agregarlo donde quieras, solo asegúrate de que esta línea esté ejecutada
Mellao
20

Para Swift 3.0, aquí hay dos opciones dependiendo de dónde desee invocar el código:

Dentro de AppDelegate.swift:

application.idleTimerDisabled = true

Fuera de AppDelegate.swift:

UIApplication.shared().isIdleTimerDisabled = true

Crashalot
fuente
2
Fuera del código de AppDelegate.swift debería ser como:UIApplication.shared.isIdleTimerDisabled = false
DevStarlight
13

Rápido 4

en el archivo AppDelegate.swift, agregue la siguiente línea dentro de la función de la aplicación :

    application.isIdleTimerDisabled = true
kavehmb
fuente
6

Puede usar mi pequeña lib Insomnia (Swift 3, iOS 9+); otra característica interesante es que puede evitar que se duerma solo cuando se carga.

El idleTimerDisabledsoultion está bien, pero debes recordar configurarlo falsedespués.

nsmeme
fuente
0

Si tiene un caso más avanzado, puede usar nuestro pequeño proyecto: ScreenSleepManager o si se trata solo de ViewControllers en particular , use Insomnia como se señaló anteriormente. El manejo manual idleTimerDisabledcasi siempre me causó algunos problemas (como olvidarme de restablecer a falso o manejar varios módulos (anidados) tratando de configurarlo).

Diablo
fuente