วิธีป้องกันการล็อกหน้าจอในแอปพลิเคชันของฉันด้วย Swift บน iOS


คำตอบ:


241

ใช้สิ่งนี้:

วัตถุประสงค์ -C:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift (มรดก):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3 ขึ้นไป:

UIApplication.shared.isIdleTimerDisabled = true

UIKitให้แน่ใจว่าจะนำเข้า

นี่คือลิงค์ไปยังเอกสารจาก apple.developer.com


4
Swift ควรจะเป็นUIApplication.sharedApplication().idleTimerDisabled = true
Doug

3
Swift 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หรือถ้าเป็นเพียงViewControllersเฉพาะให้ใช้Insomniaตามที่ระบุไว้ก่อนหน้านี้ การจัดการด้วยตนเองidleTimerDisabledเกือบตลอดเวลาทำให้ฉันเกิดปัญหาบางอย่าง (เช่นลืมตั้งค่าใหม่เป็นเท็จหรือจัดการโมดูล (ซ้อนกัน) หลายโมดูลที่พยายามตั้งค่า)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.