SwiftUI iOS App 禁止息屏,禁止自动进入休眠模式
所属分类:ios | 发布于 2024-02-02 10:35:15
默认的iOS App,如果长时间不操作,会自动进入休眠模式,也就是先是屏幕变暗,接着就进入锁屏状态。
设置是否自动进入休眠模式是由UIApplication的idleTimerDisabled属性控制的,idleTimerDisabled是Object-c语言中使用的名字,在Swift语言中,该字段名称为isIdleTimerDisabled,其值为布尔类型。
简单使用
设置进入界面禁用睡眠模式,离开页面开启默认的睡眠模式
VStack {
// some View
}
.onAppear(perform: {
// 禁用睡眠模式
UIApplication.shared.isIdleTimerDisabled = true
})
.onDisappear(perform: {
// 开启默认睡眠模式
UIApplication.shared.isIdleTimerDisabled = false
})
注意:禁用睡眠模式会消耗电池电量,所以只有在需要禁止休眠的场景才禁用睡眠模式。
高级使用
上面的使用案例简单粗暴,又看到一篇文章写的案例,感觉更加合理,但是相应的逻辑也会复杂一点
UIApplication.shared.isIdleTimerDisabled = true
// Play video here
UIApplication.shared.isIdleTimerDisabled = false