Como posso evitar o bloqueio de tela apenas ao usar a navegação?
O Waze tem a opção de fazer isso, como posso fazer isso no meu aplicativo?
Usa isto:
Objective-C:
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];
Swift (legado):
UIApplication.sharedApplication().idleTimerDisabled = true
Swift 3 e superior:
UIApplication.shared.isIdleTimerDisabled = true
Certifique-se de importar UIKit
.
Aqui está o link para a documentação de apple.developer.com.
UIApplication.sharedApplication().idleTimerDisabled = true
UIApplication.shared.idleTimerDisabled = true
UIApplication.shared.isIdleTimerDisabled = true
Para Swift 3.0, aqui estão duas opções, dependendo de onde você deseja invocar o código:
Dentro de AppDelegate.swift:
application.idleTimerDisabled = true
Fora de AppDelegate.swift:
UIApplication.shared().isIdleTimerDisabled = true
fonte
UIApplication.shared.isIdleTimerDisabled = false
Swift 4
no arquivo AppDelegate.swift, adicione a seguinte linha dentro da função do aplicativo :
fonte
Você pode usar minha pequena lib Insomnia (Swift 3, iOS 9+) - outro recurso interessante é que você pode evitar dormir apenas durante o carregamento.
A
idleTimerDisabled
alma está bem, mas você deve se lembrar de configurá-lafalse
depois.fonte
Se você tiver um caso mais avançado, pode usar nosso pequeno projeto: ScreenSleepManager ou se for apenas sobre ViewControllers específicos - use Insomnia como apontado anteriormente. O tratamento manual
idleTimerDisabled
quase sempre me causou alguns problemas (como esqueci de redefinir como falso ou lidar com vários módulos (aninhados) tentando defini-lo).fonte