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?

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.


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


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

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.


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.