¿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?
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.
UIApplication.sharedApplication().idleTimerDisabled = true
UIApplication.shared.idleTimerDisabled = true
UIApplication.shared.isIdleTimerDisabled = true
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
fuente
UIApplication.shared.isIdleTimerDisabled = false
Rápido 4
en el archivo AppDelegate.swift, agregue la siguiente línea dentro de la función de la aplicación :
fuente
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
idleTimerDisabled
soultion está bien, pero debes recordar configurarlofalse
después.fuente
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
idleTimerDisabled
casi siempre me causó algunos problemas (como olvidarme de restablecer a falso o manejar varios módulos (anidados) tratando de configurarlo).fuente