Come impedire il blocco dello schermo sulla mia applicazione con swift su iOS


113

Come posso impedire il blocco dello schermo solo quando uso la navigazione?

Waze ha la possibilità di farlo, come posso farlo nella mia app?

Risposte:


241

Usa questo:

Objective-C:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift (legacy):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3 e versioni successive:

UIApplication.shared.isIdleTimerDisabled = true

Assicurati di importare UIKit.

Ecco il collegamento alla documentazione da apple.developer.com.


4
Swift dovrebbe essereUIApplication.sharedApplication().idleTimerDisabled = true
Doug

3
Swift 3:UIApplication.shared.idleTimerDisabled = true
funkenstrahlen

2
È cambiato inUIApplication.shared.isIdleTimerDisabled = true
Lucas Farah

1
dove aggiungere questa riga? Non ho AppDelegate.swift perché sto usando il nativo di reazione
Pradnyan e Milind Pohare

@PradnyanandMilindPohare puoi aggiungerlo dove vuoi, assicurati solo che questa riga sia eseguita
Mellao

20

Per Swift 3.0 qui ci sono due opzioni a seconda di dove vuoi richiamare il codice:

All'interno di AppDelegate.swift:

application.idleTimerDisabled = true

Fuori AppDelegate.swift:

UIApplication.shared().isIdleTimerDisabled = true


2
Il codice esterno di AppDelegate.swift dovrebbe essere:UIApplication.shared.isIdleTimerDisabled = false
DevStarlight

13

Swift 4

nel file AppDelegate.swift, aggiungi la seguente riga all'interno della funzione dell'applicazione :

    application.isIdleTimerDisabled = true

6

Puoi usare la mia piccola lib Insomnia (Swift 3, iOS 9+) - un'altra bella caratteristica è che puoi evitare di dormire solo durante la ricarica.

L' idleTimerDisabledanima va bene ma devi ricordarti di impostarla in falseseguito.


0

Se hai un caso più avanzato puoi usare il nostro piccolo progetto: ScreenSleepManager o se si tratta solo di ViewController particolari - usa Insomnia come indicato in precedenza. La gestione manuale idleTimerDisabledquasi sempre mi ha causato alcuni problemi (come il dimenticarsi di reimpostare su false o gestire più moduli (annidati) cercando di impostarlo).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.