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?

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.


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


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

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.


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).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.