Comment empêcher le verrouillage de l'écran sur mon application avec Swift sur iOS


113

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?

Réponses:


241

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.


4
Swift devrait êtreUIApplication.sharedApplication().idleTimerDisabled = true
Doug

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

2
Il a changé enUIApplication.shared.isIdleTimerDisabled = true
Lucas Farah

1
où ajouter cette ligne? Je n'ai pas AppDelegate.swift car j'utilise react-native
Pradnyanand Milind Pohare

@PradnyanandMilindPohare, vous pouvez l'ajouter où vous voulez, assurez-vous simplement que cette ligne est exécutée
Mellao

20

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


2
En dehors du code AppDelegate.swift devrait être comme:UIApplication.shared.isIdleTimerDisabled = false
DevStarlight

13

Swift 4

dans le fichier AppDelegate.swift, ajoutez la ligne suivante à l'intérieur de la fonction d' application :

    application.isIdleTimerDisabled = true

6

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 idleTimerDisabledsoultion est correcte mais vous devez vous rappeler de la régler par la falsesuite.


0

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 idleTimerDisabledme 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).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.