Como evitar o bloqueio de tela em meu aplicativo com o swift no iOS

113

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?

alvarogalia
fonte

Respostas:

241

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.

Atwalsh
fonte
4
Swift deveria serUIApplication.sharedApplication().idleTimerDisabled = true
Doug
3
Swift 3:UIApplication.shared.idleTimerDisabled = true
funkenstrahlen,
2
Mudou paraUIApplication.shared.isIdleTimerDisabled = true
Lucas Farah,
1
onde adicionar esta linha? Não tenho AppDelegate.swift porque estou usando o
react
@PradnyanandMilindPohare você pode adicioná-lo onde quiser, apenas certifique-se de que esta linha seja executada
Mellao
20

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

Crashalot
fonte
2
O código externo de AppDelegate.swift deve ser assim:UIApplication.shared.isIdleTimerDisabled = false
DevStarlight
13

Swift 4

no arquivo AppDelegate.swift, adicione a seguinte linha dentro da função do aplicativo :

    application.isIdleTimerDisabled = true
kavehmb
fonte
6

Você pode usar minha pequena lib Insomnia (Swift 3, iOS 9+) - outro recurso interessante é que você pode evitar dormir apenas durante o carregamento.

A idleTimerDisabledalma está bem, mas você deve se lembrar de configurá-la falsedepois.

nsmeme
fonte
0

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 idleTimerDisabledquase sempre me causou alguns problemas (como esqueci de redefinir como falso ou lidar com vários módulos (aninhados) tentando defini-lo).

Diabo
fonte