Как предотвратить блокировку экрана только при использовании навигации. У Waze есть возможность сделать это, как я могу сделать это в своем приложении?
Как предотвратить блокировку экрана в моем приложении с быстрым включением IOS
Ответ 1
Использовать этот:
Objective-C:
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];
Свифт (наследие):
UIApplication.sharedApplication().idleTimerDisabled = true
Свифт 3/4:
UIApplication.shared.isIdleTimerDisabled = true
Обязательно импортируйте UIKit
.
Вот ссылка на документацию от apple.developer.com.
Ответ 2
Для Swift 3.0 здесь есть два варианта в зависимости от того, где вы хотите вызвать код:
Внутри AppDelegate.swift:
application.idleTimerDisabled = true
Внешний AppDelegate.swift:
UIApplication.shared().isIdleTimerDisabled = true
Ответ 3
Swift 4
в файле AppDelegate.swift добавьте следующую строку внутри функции приложения:
application.isIdleTimerDisabled = true
Ответ 4
Вы можете использовать мою небольшую библиотеку Insomnia (Swift 3, iOS 9+) - еще одна приятная функция - вы можете предотвратить спать только при зарядке.
Душа idleTimerDisabled
в порядке, но вы должны помнить, чтобы после этого она была false
.
Ответ 5
Если у вас более сложный случай, вы можете использовать наш небольшой проект: ScreenSleepManager или, если речь идет только о конкретных ViewControllers, - использовать Insomnia, как указано ранее. Руководство по работе с idleTimerDisabled
почти всегда вызывало у меня некоторые проблемы (например, забыл idleTimerDisabled
значение false или обработать несколько (вложенных) модулей, пытаясь его установить).