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