Comment puis-je empêcher le verrouillage de l'écran uniquement lors de l'utilisation de la navigation?
Waze a la possibilité de le faire, comment puis-je le faire dans mon application?
Utilisez ceci:
Objectif c:
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];
Swift (héritage):
UIApplication.sharedApplication().idleTimerDisabled = true
Swift 3 et supérieur:
UIApplication.shared.isIdleTimerDisabled = true
Assurez-vous d'importer UIKit
.
Voici le lien vers la documentation sur apple.developer.com.
UIApplication.sharedApplication().idleTimerDisabled = true
UIApplication.shared.idleTimerDisabled = true
UIApplication.shared.isIdleTimerDisabled = true
Pour Swift 3.0, voici deux options en fonction de l'endroit où vous souhaitez appeler le code:
Dans AppDelegate.swift:
application.idleTimerDisabled = true
En dehors de AppDelegate.swift:
UIApplication.shared().isIdleTimerDisabled = true
la source
UIApplication.shared.isIdleTimerDisabled = false
Swift 4
dans le fichier AppDelegate.swift, ajoutez la ligne suivante à l'intérieur de la fonction d' application :
la source
Vous pouvez utiliser ma petite lib Insomnia (Swift 3, iOS 9+) - une autre fonctionnalité intéressante est que vous pouvez empêcher de dormir uniquement pendant la charge.
La
idleTimerDisabled
soultion est correcte mais vous devez vous rappeler de la régler par lafalse
suite.la source
Si vous avez un cas plus avancé, vous pouvez utiliser notre petit projet: ScreenSleepManager ou s'il s'agit simplement de ViewControllers particuliers - utilisez Insomnia comme indiqué précédemment. Le manuel traitant
idleTimerDisabled
me causait presque toujours des problèmes (comme oublier de réinitialiser sur false ou gérer plusieurs modules (imbriqués) en essayant de le définir).la source