[ios] iOS에서 Swift로 내 애플리케이션의 화면 잠금을 방지하는 방법

내비게이션을 사용할 때만 화면 잠금을 방지하려면 어떻게해야합니까?

Waze에는 그렇게 할 수있는 옵션이 있습니다. 내 앱에서 어떻게 할 수 있습니까?



답변

이것을 사용하십시오 :

목표 -C :

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift (레거시) :

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3 이상 :

UIApplication.shared.isIdleTimerDisabled = true

을 가져와야 UIKit합니다.

다음 은 apple.developer.com의 문서 링크입니다.


답변

Swift 3.0의 경우 코드를 호출하려는 위치에 따라 두 가지 옵션이 있습니다.

AppDelegate.swift 내부 :

application.idleTimerDisabled = true

AppDelegate.swift 외부 :

UIApplication.shared().isIdleTimerDisabled = true


답변

스위프트 4

AppDelegate.swift 파일에서 애플리케이션 함수 안에 다음 줄을 추가합니다 .

    application.isIdleTimerDisabled = true


답변

My little lib Insomnia (Swift 3, iOS 9+)를 사용할 수 있습니다. 또 다른 좋은 기능은 충전 할 때만 수면을 방지 할 수 있다는 것입니다.

idleTimerDisabledsoultion 괜찮습니다하지만 당신은 그것을 설정 기억해야 false나중에.


답변

고급 사례가있는 경우 작은 프로젝트 인 ScreenSleepManager를 사용할 수 있습니다. 또는 특정 ViewController 에 관한 것이라면 앞서 언급 한대로 Insomnia 를 사용 하세요. 수동으로 처리하면 idleTimerDisabled거의 항상 몇 가지 문제가 발생했습니다 (예 : false로 재설정하거나 설정하려는 여러 (중첩 된) 모듈을 처리하는 것을 잊음).


답변