2015-09-22 3 views
0

Как говорится в заголовке, всегда ли отключено или отключено управление вызовом. У кого-нибудь есть предложения?Cordova.Diganostic.IsLocationEnabled всегда возвращает истинный ионный

if (window.cordova) { 
    window.cordova.plugins.diagnostic.isLocationEnabled(locationEnabled,locationDisabled); 
} 
function locationEnabled() {.. } 
function locationDisabled() {...} 

Я тестирую его на Samsung Galaxy s5 с Lolipop

ответ

1

The isLocationEnabled не работает, как вы думаете.

Первой функцией, которую вы передаете как аргумент, является «обратный вызов успеха». Это не означает, что местоположение включено, это просто означает, что плагин успешно восстановил статус местоположения. Логическое значение задается как аргумент, и именно там вы можете узнать, включено ли местоположение или нет.

Вторая функция, которую вы передаете, является той, которая вызывается, когда плагин не может получить статус местоположения.

Так что вам нужно, чтобы сделать ваш код выглядеть примерно так:

function locationEnabled() { 
    // Blabla 
} 

function locationDisabled() { 
    // Blabla 
} 

if (window.cordova) { 
    window.cordova.plugins.diagnostic.isLocationEnabled(function (locationEnabled) { 
     if (locationEnabled) { 
      locationEnabled(); 
     } else { 
      locationDisabled(); 
     } 
    }, function (error) { 
     console.log("The following error occurred: " + error); 
    }); 
} 

Проверьте plugin documentation для более подробной информации.

Смежные вопросы