Ионный предотвращает спящий режим телефона, только когда приложение запущено


person Sideshow Bob    schedule 15.12.2016    source источник


Ответы (2)


Вы можете использовать allowSleepAgain() с $timeout и повторно устанавливать задержку каждый раз, когда вы что-то делаете с keepAwakeforMinutes().

var keepAwakeforMinutes = function(minutes){
    // when an action is done,
    // cancel the last allowSleepAgain() $timeout if exists to create a new longer one
    if ($rootScope.sleeping){
        // alert("cancel previous timeout");
        $timeout.cancel( $rootScope.sleeping );
    }

    // be awake for the next minutes by creating a new timeout
    $window.plugins.insomnia.keepAwake();
    $rootScope.sleeping = $timeout(function() {
        // timeout ended
        $window.plugins.insomnia.allowSleepAgain();
    }, 60000*minutes); // awake for the next minutes
}
person Sebastien Horin    schedule 28.03.2017

Посмотрев на источник этого подключаемого модуля, в iOS он вызывает setIdleTimerDisabled:true в экземпляре UIApplication. isIdleTimerDisabled - это

Логическое значение, определяющее, отключен ли таймер простоя для приложения.

Он не отключает таймер простоя для устройства в целом, поэтому, если пользователь приостанавливает работу вашего приложения, таймер простоя будет снова включен.

person Paulw11    schedule 16.12.2016