当我关闭GPS启动应用程序,以后激活GPS时,未检测到位置

时间:2016-07-09 02:22:36

标签: ionic-framework gps geolocation

我在Ionic App中通过谷歌地图进行GPS检测时出现问题。当我启动应用程序关闭GPS后,我从设置设备更改为GPS打开,单击找我按钮 - centerOnMe()功能 - GPS无法正常工作。功能响应总是

`Error: GPS Timeout! ERROR = 3` 

一开始我觉得这是一个缓存问题,但我发现不是那个。从视图中使用$ state.reload无关紧要。 ¿有没有人得到同样的问题?感谢您的支持。我附上以下功能:

  $scope.centerOnMe = function() {

        $ionicPlatform.ready(function() {
        console.log('Click on Find Me');

        if(!map) {
            return;
        }

        $ionicLoading.show({
            content: 'Getting current location...',
            showBackdrop: false
        });

        //$state.reload('app.map');
        watchPositionId = navigator.geolocation.watchPosition(function(position) {                    
                navigator.geolocation.clearWatch(watchPositionId);
                var latitude     = position.coords.latitude;
                var longitude    = position.coords.longitude;
                $scope.latitude  = latitude;
                $scope.longitude = longitude;
                var geolocpoint  = new google.maps.LatLng(latitude, longitude);
                map.setCenter(geolocpoint);     
        });
        navigator.geolocation.getCurrentPosition(function (position) {
                   var lat  = position.coords.latitude
                   var long = position.coords.longitude                
                   $scope.center = new google.maps.LatLng(lat, long);
                   $ionicLoading.hide();
                   console.log("GPS is enabled" + $scope.center);
         }, function(err) {
                  // error
                  if (err.code == 1)     { console.log('GPS disabled! ERROR = '       + err.code);  }
                  else if(err.code == 2) { console.log('GPS is unavailable! ERROR = ' + err.code);  }
                  else if(err.code == 3) { console.log('Error: GPS Timeout! ERROR = ' + err.code);  }   
                  $ionicLoading.hide();
         }, {
                  enableHighAccuracy: true, timeout: 20000
            }  
         );

       });      
    };

1 个答案:

答案 0 :(得分:0)

最好使用this插件,

 cordova plugin add cordova.plugins.diagnostic

它将直接检查是否启用了gps。

更多细节请查看以下离子论坛问题,

  1. Geo location timeout vs location permission error
  2. Get Current Position not working after turning the GPS off on the device even if it turned on again?
  3. 希望这会对你有所帮助!!