Comment puis-je empêcher le verrouillage de l'écran uniquement lorsque vous utilisez Navigation? Waze a la possibilité de le faire, comment puis-je le faire dans mon application?
Utilisez ceci:
Objective-C:
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];
Swift (legs):
UIApplication.sharedApplication().idleTimerDisabled = true
Swift 3/4:
UIApplication.shared.isIdleTimerDisabled = true
Assurez-vous d'importer UIKit
.
Ici est le lien vers la documentation de Apple.developer.com.
Pour Swift 3.0, deux options sont disponibles selon l'endroit où vous souhaitez appeler le code:
Inside AppDelegate.Swift:
application.idleTimerDisabled = true
En dehors de AppDelegate.Swift:
UIApplication.shared().isIdleTimerDisabled = true
Swift 4
dans le fichier AppDelegate.Swift, ajoutez la ligne suivante dans la fonction application:
application.isIdleTimerDisabled = true
Vous pouvez utiliser ma petite bibliothèque Insomnia (Swift 3, iOS 9+) - une autre fonctionnalité intéressante est que vous pouvez empêcher de dormir uniquement lors de la charge.
La idleTimerDisabled
soultion est correcte, mais vous devez vous rappeler de la définir sur false
ultérieurement.
Si vous avez un cas plus avancé, vous pouvez utiliser notre petit projet: ScreenSleepManager ou s'il s'agit simplement de ViewControllers - use - Insomnie comme indiqué précédemment. Le traitement manuel de idleTimerDisabled
m'a presque toujours causé des problèmes (par exemple, j'ai oublié de redéfinir la valeur sur false ou de gérer plusieurs modules (imbriqués) essayant de le définir).