如何仅在使用导航时阻止屏幕锁定。 Waze可以选择这样做,我怎么能在我的App中做到这一点?
答案 0 :(得分:200)
使用此:
<强>目标-C:强>
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];
Swift(遗产):
UIApplication.sharedApplication().idleTimerDisabled = true
Swift 3/4:
UIApplication.shared.isIdleTimerDisabled = true
确保导入UIKit
。
Here是apple.developer.com文档的链接。
答案 1 :(得分:17)
对于Swift 3.0,这里有两个选项,具体取决于您想要调用代码的位置:
内部AppDelegate.swift:
application.idleTimerDisabled = true
外部AppDelegate.swift:
UIApplication.shared().isIdleTimerDisabled = true
答案 2 :(得分:9)
Swift 4
在AppDelegate.swift文件中,在应用程序功能中添加以下行:
application.isIdleTimerDisabled = true
答案 3 :(得分:4)
你可以使用我的小lib Insomnia(Swift 3,iOS 9+) - 另一个不错的功能是你可以防止只在充电时睡觉。
idleTimerDisabled
灵魂是可以的,但你必须记得事后将它设置为false
。
答案 4 :(得分:0)
如果您有更高级的案例,则可以使用我们的小型项目:ScreenSleepManager,或者仅用于特定的 ViewControllers -如前所述使用Insomnia。手动处理idleTimerDisabled
几乎总是导致我遇到一些问题(例如忘记重新设置为false或处理多个试图对其进行设置的(嵌套)模块)。