如何通过iOS上的Swift防止应用程序上的屏幕锁定


Answers:


241

用这个:

目标C:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

斯威夫特(旧版):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3及更高版本:

UIApplication.shared.isIdleTimerDisabled = true

确保导入UIKit

是来自apple.developer.com的文档的链接。


4
斯威夫特应该是UIApplication.sharedApplication().idleTimerDisabled = true
Doug

3
斯威夫特3:UIApplication.shared.idleTimerDisabled = true
funkenstrahlen

2
它改为UIApplication.shared.isIdleTimerDisabled = true
Lucas Farah

1
在哪里添加此行?我没有使用AppDelegate.swift,因为我正在使用react-native
Pradnyanand Milind Pohare

@PradnyanandMilindPohare可以将其添加到任何位置,只需确保已执行此行
Mellao

20

对于Swift 3.0,有两个选项,具体取决于您要在何处调用代码:

在AppDelegate.swift内部:

application.idleTimerDisabled = true

在AppDelegate.swift之外:

UIApplication.shared().isIdleTimerDisabled = true


2
AppDelegate.swift外部代码应类似于:UIApplication.shared.isIdleTimerDisabled = false
DevStarlight

13

斯威夫特4

在AppDelegate.swift文件中,在应用程序功能内添加以下行:

    application.isIdleTimerDisabled = true

6

您可以使用我的小型lib Insomnia(Swift 3,iOS 9+)-另一个不错的功能是您可以仅在充电时才能防止睡眠。

idleTimerDisabledsoultion是好的,但你要记住将其设置为false之后。


0

如果您有更高级的案例,则可以使用我们的小型项目:ScreenSleepManager,或者仅用于特定的ViewController-使用前面提到的Insomnia。手动处理idleTimerDisabled几乎总是引起我一些问题(例如忘记重新设置为false或处理试图设置它的多个(嵌套的)模块)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.