app.controller('dashboard', function($scope){
$scope.getPosition = function(position){
$scope.acc = position.coords;
$scope.lat = position.coords.latitude;
$scope.lng = position.coords.longitude;
$scope.$apply();
};
$scope.getPositionErr = function(error){
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
};
navigator.geolocation.getCurrentPosition($scope.getPosition, $scope.getPositionErr, {maximumAge: 0, timeout: 6000, enableHighAccuracy:false});
});
Я использую Angular JS и Cordova для Android-приложения. Этот код отлично работает на рабочем столе, но не на Nexus 4 с Lollipop. Также код контроллера выполняется после deviceready в соответствии с требованием Кордовы
Я пробовал
- Настройка HighAccuracy на false
- Удаление плагина геолокации, чтобы он использовал местоположение по умолчанию из Wifi
- Перезагрузка устройства
- Очистка кеша браузера
- Включение/выключение режима полета
- Включение/выключение Wi-Fi
- Включение/выключение мобильных данных
Но я не могу получить lat, long и geolocation всегда получает таймаут.
Он работает, только когда я установил параметр Location/GPS. После включения кода он работает как ожидалось.