如何使用 iOS 上的 swift 防止我的​​应用程序屏幕锁定

How to prevent screen lock on my application with swift on iOS

如何防止仅在使用导航时锁屏?

Waze 有执行此操作的选项,我如何在我的应用程序中执行此操作?

使用这个:

Objective-C:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift(旧版):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3及以上:

UIApplication.shared.isIdleTimerDisabled = true

确保导入 UIKit.

Here 是 link 到文档的 developer.apple.com。

你可以使用我的小库Insomnia (Swift 3, iOS 9+) - 另一个不错的功能是你可以防止只在充电时休眠。

idleTimerDisabled 灵魂是可以的,但你必须记得将它设置为 false 之后。

对于 Swift 3.0,这里有两个选项,具体取决于您要调用代码的位置:

里面AppDelegate.swift:

application.idleTimerDisabled = true

外面AppDelegate.swift:

UIApplication.shared().isIdleTimerDisabled = true

Swift 4

在 AppDelegate.swift 文件中,在 application 函数中添加以下行:

application.isIdleTimerDisabled = true
        

如果您有更高级的案例,您可以使用我们的小项目:ScreenSleepManager or if it's just about particular ViewControllers - use Insomnia 如前所述。手动处理 idleTimerDisabled 几乎总是给我带来一些问题(比如忘记 re-set 为 false 或处理多个(嵌套的)模块试图设置它)。