ionic.bundle.js:25642错误:[$ injector:unpr]未知提供者:$ cordovaGeolocationProvider< - $ cordovaGeolocation< - AgeCtrl

时间:2016-03-22 14:57:38

标签: javascript cordova ionic-framework geolocation

我目前正处于通过Ionic构建应用程序的起始阶段。现在我想在其中实现cordova地理定位。但是,打开它时会出现错误。出于测试目的,我使用离子服务并在localhost中进行检查。

angular.module('starter', ['ionic','ionic.service.core', 'ui.router'])
.controller('AgeCtrl', function ($scope, $state, $http, $cordovaGeolocation) {


$scope.toggleItem = function (item) {
    item.checked = !item.checked;
};

$scope.items = [
  { id: '0-12' },
  { id: '12-18' },
  { id: '18-30' },
  { id: '30-65' },
  { id: '65+' }
];

    $scope.time = Date.now();
   $scope.weather = $http.get("http://api.openweathermap.org/data/2.5/weather?q=Amsterdam&units=metric&APPID=...").then(function(resp) {
   console.log("success", resp);
   }, function(err) {
    console.log("error");
   })

var posOptions = {timeout: 10000, enableHighAccuracy: false};
$cordovaGeolocation
.getCurrentPosition(posOptions)

.then(function (position) {
  var lat  = position.coords.latitude
  var long = position.coords.longitude
  console.log(lat + '   ' + long)
}, function(err) {
  console.log(err)
});

$scope.Confirm = function (){
    $state.go('home');
}
})

我是否有任何地方犯了导致这个问题的错误?

3 个答案:

答案 0 :(得分:1)

离子服务仅模拟浏览器中的应用程序。 您无法访问浏览器中的Cordova插件。

要获得包含的库,您需要在添加特定平台后根据您拥有的设备在设备上运行该应用程序。

对于iOS:

  

离子平台添加ios

对于android:

  

离子平台添加android

添加平台后,您可以使用以下命令在设备上构建和运行

对于iOS:

  

离子运行iOS

对于android:

  

离子运行android

答案 1 :(得分:1)

我认为问题出在你的ngCordova安装上。 执行以下步骤 -

1- install -------------->凉亭安装ngCordova

2-包含在index.html上面的cordova.js ------------------> script src =“lib / ngCordova / dist / ng-cordova.js”

3-注射-------------> angular.module(starter,['ngCordova'])

运行IONIC服务并且问题将消失..如果仍然显示/ dist / ngCordova不存在的错误,则手动转到位置,其中安装了ng cordova并将其复制到路径,例如 - / lib / ngCordova / dist /...

它肯定会解决您的问题

答案 2 :(得分:0)

我认为它在离子中没有被引用为$cordovaGeolocation。请改为navigator.geolocation.getCurrentPosition