Ionic Android navigator.geolocation.getCurrentPosition在Android Kitkat 4.4.4中无效

时间:2016-01-05 11:31:31

标签: gps ionic-framework android-4.4-kitkat

我使用navigator.geolocation.getCurrentPosition构建一个android Ionic应用程序,这是我的代码:

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);

当我在除了Kitkat 4.4.4之外的所有操作系统的Android设备上尝试我的应用程序时,该代码运行良好,但是当我在Android 4.4.4中尝试时,它总是调用函数错误,消​​息超时已到期,任何人都可以帮忙?

1 个答案:

答案 0 :(得分: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

Cordova版本:5.4.1,离子骨架版本:1.2.1,离子型cli版本:1.7.12。