Bagaimana mencegah kunci layar pada aplikasi saya dengan swift di iOS

113

Bagaimana cara mencegah kunci layar hanya saat menggunakan Navigasi?

Waze memiliki opsi untuk melakukannya, bagaimana cara melakukannya di Aplikasi saya?

alvarogalia.dll
sumber

Jawaban:

241

Gunakan ini:

Objective-C:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift (warisan):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3 ke atas:

UIApplication.shared.isIdleTimerDisabled = true

Pastikan untuk mengimpor UIKit.

Berikut ini tautan ke dokumentasi dari apple.developer.com.

atwalsh
sumber
4
Swift seharusnyaUIApplication.sharedApplication().idleTimerDisabled = true
Doug
3
Swift 3:UIApplication.shared.idleTimerDisabled = true
funkenstrahlen
2
Ini berubah menjadiUIApplication.shared.isIdleTimerDisabled = true
Lucas Farah
1
di mana menambahkan baris ini? Saya tidak memiliki AppDelegate.swift karena saya menggunakan react-native
Pradnyan dan Milind Pohare
@PradnyanandMilindPohare Anda dapat menambahkannya di mana pun Anda mau, cukup pastikan baris ini dijalankan
Mellao
20

Untuk Swift 3.0 berikut adalah dua opsi tergantung di mana Anda ingin memanggil kode:

Di dalam AppDelegate.swift:

application.idleTimerDisabled = true

Di luar AppDelegate.swift:

UIApplication.shared().isIdleTimerDisabled = true

Crashalot
sumber
2
Kode luar AppDelegate.swift harus seperti:UIApplication.shared.isIdleTimerDisabled = false
DevStarlight
13

Cepat 4

di file AppDelegate.swift, tambahkan baris berikut di dalam fungsi aplikasi :

    application.isIdleTimerDisabled = true
kavehmb
sumber
6

Anda dapat menggunakan Insomnia lib kecil saya (Swift 3, iOS 9+) - fitur bagus lainnya adalah Anda dapat mencegah tidur hanya saat mengisi daya.

The idleTimerDisabledsoultion baik-baik saja tetapi Anda harus ingat untuk mengaturnya untuk falsesesudahnya.

nsmeme.dll
sumber
0

Jika Anda memiliki kasus yang lebih maju, Anda dapat menggunakan proyek kecil kami: ScreenSleepManager atau jika itu hanya tentang ViewControllers tertentu - gunakan Insomnia seperti yang disebutkan sebelumnya. idleTimerDisabledMenangani secara manual hampir selalu menyebabkan saya beberapa masalah (seperti lupa mengatur ulang ke salah atau menangani beberapa modul (bersarang) yang mencoba mengaturnya).

Setan
sumber