离子角$http和geolocation.getCurrentPosition在iOS模拟器中似乎不起作用

离子角$http和geolocation.getCurrentPosition在iOS模拟器中似乎不起作用,ios,angularjs,ionic,Ios,Angularjs,Ionic,我正在使用Ionic开发一个简单的iOS应用程序 当我在chrome上运行应用程序时,我有两个在iOS模拟器中似乎不起作用的功能,它们工作得很好 首先,我在一家工厂使用$http服务获取一些数据: var harbours = function () { var deferred = $q.defer(); $http({ method: 'GET', url: '../data/harbourData.json' }).success(funct

我正在使用Ionic开发一个简单的iOS应用程序

当我在chrome上运行应用程序时,我有两个在iOS模拟器中似乎不起作用的功能,它们工作得很好

首先,我在一家工厂使用$http服务获取一些数据:

var harbours = function () {
    var deferred = $q.defer();
    $http({
      method: 'GET',
      url: '../data/harbourData.json'
    }).success(function (data, status, headers, config) {
      deferred.resolve(data);
    }).error(function(data, status, headers, config) {
      deferred.reject(status);
    });
    return deferred.promise;


     }

.....
return {
    all: harbours
....
}
然后在控制器的“我的作用域”中设置它,方法是:

var harboursPromise = Harbours.all();
harboursPromise.then(function(response){
    console.log('response from controller', response);
    $scope.harbours = response.harbours;  
  });
这似乎不会执行,因为我没有在模板中获取数据,而我在chrome中运行应用程序时获取数据

第二,地理定位。这段代码在浏览器中运行正常,但在模拟器中构建和运行应用程序时却无法运行:

$scope.position = 'Trying to find your location...'

  if (navigator.geolocation){
    navigator.geolocation.getCurrentPosition(function(position){
      $scope.$apply(function(){
        $scope.position = position.coords.latitude+", "+position.coords.longitude;
      })
    })
  } else {
    $scope.position = "Sorry, we can't get your location";
  }
在正在运行的应用程序中,它似乎可以访问navigator.geolocation,因为$scope.position不会更改为“抱歉,我们无法获取您的位置”。我确信我正在/没有做的事情是根本错误的。有人能给我指一下正确的方向吗


谢谢。

它在真实设备上运行良好吗?首先,您需要知道您遇到了什么错误。放一些控制台,看看有什么错误。如果您不知道如何调试设备或模拟器中运行的应用程序?使用
-l-c
参数运行
ionic run
命令,详细信息请参见此,并使用此插件包装器,否则必须使用$apply。插件也会出现错误,但$scope不会在内部调用中得到更新。它在真实设备上运行良好吗?首先,您需要知道您遇到了什么错误。放一些控制台,看看有什么错误。如果您不知道如何调试设备或模拟器中运行的应用程序?使用
-l-c
参数运行
ionic run
命令,详细信息请参见此,并使用此插件包装器,否则必须使用$apply。插件也会出错,但$scope不会在内部调用中得到更新。