Wie kann ich die Bildschirmsperre nur bei Verwendung der Navigation verhindern?
Waze hat die Möglichkeit, dies zu tun. Wie kann ich dies in meiner App tun?
Benutze das:
Ziel c:
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];
Swift (Vermächtnis):
UIApplication.sharedApplication().idleTimerDisabled = true
Swift 3 und höher:
UIApplication.shared.isIdleTimerDisabled = true
Stellen Sie sicher, dass Sie importieren UIKit
.
Hier ist der Link zur Dokumentation von apple.developer.com.
UIApplication.sharedApplication().idleTimerDisabled = true
UIApplication.shared.idleTimerDisabled = true
UIApplication.shared.isIdleTimerDisabled = true
Für Swift 3.0 gibt es zwei Optionen, je nachdem, wo Sie den Code aufrufen möchten:
In AppDelegate.swift:
application.idleTimerDisabled = true
Außerhalb von AppDelegate.swift:
UIApplication.shared().isIdleTimerDisabled = true
quelle
UIApplication.shared.isIdleTimerDisabled = false
Swift 4
Fügen Sie in der Datei AppDelegate.swift die folgende Zeile in die Anwendungsfunktion ein :
quelle
Sie können meine kleine lib Insomnia (Swift 3, iOS 9+) verwenden - eine weitere nette Funktion ist, dass Sie verhindern können, dass Sie nur beim Aufladen schlafen.
Die
idleTimerDisabled
Lösung ist in Ordnung, aber Sie müssen daran denken, siefalse
anschließend einzustellen .quelle
Wenn Sie einen fortgeschritteneren Fall haben, können Sie unser kleines Projekt verwenden: ScreenSleepManager oder wenn es sich nur um bestimmte ViewController handelt - verwenden Sie Insomnia, wie bereits erwähnt. Der manuelle Umgang mit
idleTimerDisabled
mir verursachte fast immer einige Probleme (z. B. vergessen, auf false zurückzusetzen oder mehrere (verschachtelte) Module zu behandeln, die versuchen, ihn einzustellen).quelle