Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> iOS

วิธีป้องกันไม่ให้หน้าจอ iOS เข้าสู่โหมด Sleep

ปิด Auto-Lock (Idle Timer) ในแอป iOS ด้วยโค้ด 1 บรรทัด

โค้ดสั้นๆ

override func viewDidLoad() {
    super.viewDidLoad()
    UIApplication.shared.isIdleTimerDisabled = true
}

คำอธิบาย

  • isIdleTimerDisabled = true: ป้องกันไม่ให้อุปกรณ์เข้าสู่ Sleep Mode
  • ใช้ใน: Navigation Apps, Video Players, Kiosk Mode, Games, Reading Apps
  • ⚠️ ใช้ให้หมดจังหวะ: กินแบตเตอรี่มาก, อาจทำให้หน้าจอ Burn-in (OLED)

Best Practice: เปิด/ปิดตาม Context

// เปิดเมื่อเข้าหน้าจอที่ต้องการ (Video Player, Map Navigation)
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    UIApplication.shared.isIdleTimerDisabled = true
}

// ปิดเมื่อออกจากหน้าจอ
override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    UIApplication.shared.isIdleTimerDisabled = false
}

ข้อควรระวัง

  • ต้องตั้งค่ากลับเป็น false เมื่อไม่ต้องการแล้ว (Good Citizen)
  • Apple อาจ Reject App ที่ปิด Idle Timer ตลอดเวลาโดยไม่มีเหตุผล
  • User ยังสามารถ Lock หน้าจอได้ด้วย Power Button (Force Lock)