2016-01-05 3 views
1

Я создаю андроид приложение Ionic, что с помощью navigator.geolocation.getCurrentPosition, вот мой код:Ионные Android navigator.geolocation.getCurrentPosition не работал в Android KitKat 4.4.4

var opsi = {maxAge: 30000, frequency : 30000, enableHighAccuracy: false}; 

    function success (pos) { 
    var lat1 = pos.coords.latitude; 
    var long1 = pos.coords.longitude; 
    $http.post(link, { 
     devicetime : getdtNow(), 
     token : token, 
     longlat : { 
     lat: lat1, 
     long: long1,   
     }, 
     searchTerm : '' 
     }).success(function (res){ 
      $ionicLoading.hide(); 
      var s = JSON.stringify(res); 
      var reply = JSON.parse(s); 
      if (reply.result == 'OK'){ 
       parkingsites = reply.parkingsites; 
       if (maplistview==0){ 
       gmap($scope,$location); 
       getparkimage($scope); 
       } 
       else if (maplistview==1){ 
       getparkimage($scope); 
       } 
      } 
      else if(reply.result == 'TOKENNOTFOUND'){ 
      state='templates/loginregister.html'; 
      ct_state = 'loginregister'; 
      $location.path('/'); 
      $ionicPopup.alert({ 
       title: 'App Warning', 
       template: 'Sesi Anda Telah Habis' 
      }); 
      } 
      else { 

      } 
     }).error(function (data) { 
     $ionicLoading.hide(); 
     $ionicPopup.alert({ 
      title: 'App Warning', 
      template: 'Koneksi Ke Server Bermasalah' 
     }); 
     }); 
    }; 

    function error(err) { 
    $ionicLoading.hide(); 
    $ionicPopup.alert({ 
     title: 'App Warning', 
     template: err.message 
    }); 
    //console.warn('ERROR(' + err.code + '): ' + err.message); 
    }; 

    navigator.geolocation.getCurrentPosition(success, error, opsi); 

Когда я пытаюсь мое приложение в Android-устройства со всей ОС, кроме Kitkat 4.4.4, этот код работает хорошо, но когда я пытаюсь в Android 4.4.4, он всегда называется функцией ошибки, с истечением времени сообщения, кто-нибудь может помочь?

ответ

1

У меня это работает на платформе Android 4.4.4, просто используя следующий код:

function getUserPosition() { 
     var positionOptions = {timeout: 10000, enableHighAccuracy: true}; 
     return $ionicPlatform.ready() 
     .then(function() { 
      return $cordovaGeolocation.getCurrentPosition(positionOptions); 
     }, function (error) { 
      console.error("Error getting user position: " + angular.toJson(error)); 
     }); 
    } 

Я использую cordova geolocation plugin.

Версия Кордовы: 5.4.1, версия ионного каркаса: 1.2.1, ионная версия кли: 1.7.12.

+0

все еще не работает @LuisCunha – Redturbo

+0

что именно вы пробовали? У меня есть код, который я опубликовал в настоящее время на Sony Xperia E, который запускает версию 4.4.4 kitkat. Какое устройство вы используете? Предоставляли ли вы разрешения на использование служб определения местоположения? –

+0

Мое устройство Polytron 4G450 Kitkat 4.4.4, я назвал $ ionicPlatform.ready() перед вызовом getcurrentlocation, и это не сработает, есть ли какое-то устройство с Android 4.4.4 действительно не может получить текущую локацию? – Redturbo