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.