Jak zapobiec blokowaniu ekranu w mojej aplikacji za pomocą Swift na iOS


113

Jak mogę zapobiec blokowaniu ekranu tylko podczas korzystania z Nawigacji?

Waze ma taką możliwość, jak mogę to zrobić w mojej aplikacji?

Odpowiedzi:


241

Użyj tego:

Cel C:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift (starsze):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3 i nowsze:

UIApplication.shared.isIdleTimerDisabled = true

Pamiętaj, aby zaimportować UIKit.

Oto link do dokumentacji z apple.developer.com.


4
Szybki powinien byćUIApplication.sharedApplication().idleTimerDisabled = true
Doug

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

2
Zmieniło się naUIApplication.shared.isIdleTimerDisabled = true
Lucas Farah

1
gdzie dodać tę linię? Nie mam AppDelegate.swift, ponieważ używam native
speakera

@PradnyanandMilindPohare możesz go dodać w dowolnym miejscu, po prostu upewnij się, że ta linia jest wykonana
Mellao

20

W przypadku Swift 3.0 dostępne są dwie opcje w zależności od tego, gdzie chcesz wywołać kod:

Wewnątrz AppDelegate.swift:

application.idleTimerDisabled = true

Poza AppDelegate.swift:

UIApplication.shared().isIdleTimerDisabled = true


2
Zewnętrzny kod AppDelegate.swift powinien wyglądać następująco:UIApplication.shared.isIdleTimerDisabled = false
DevStarlight

13

Szybki 4

w pliku AppDelegate.swift dodaj następujący wiersz wewnątrz funkcji aplikacji :

    application.isIdleTimerDisabled = true

6

Możesz użyć mojego małego lib Insomnia (Swift 3, iOS 9+) - kolejną fajną funkcją jest to, że możesz zapobiec spaniu tylko podczas ładowania.

idleTimerDisabledSoultion jest w porządku, ale trzeba pamiętać, aby ustawić go na falsepóźniej.


0

Jeśli masz bardziej zaawansowany przypadek, możesz skorzystać z naszego małego projektu: ScreenSleepManager lub jeśli chodzi o konkretne ViewControllers - użyj Insomnia, jak wskazano wcześniej. Ręczne radzenie sobie z idleTimerDisabledprawie zawsze powodowało pewne problemy (na przykład zapomniałem zresetować na false lub obsłużyć wiele (zagnieżdżonych) modułów, próbując to ustawić).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.