【问题标题】:ionic.bundle.js:25642 Error: [$injector:unpr] Unknown provider: $cordovaGeolocationProvider <- $cordovaGeolocation <- AgeCtrlionic.bundle.js:25642 错误:[$injector:unpr] 未知提供者:$cordovaGeolocationProvider <- $cordovaGeolocation <- AgeCtrl
【发布时间】:2016-07-09 13:02:36
【问题描述】:

我目前正处于通过 Ionic 构建应用程序的开始阶段。现在我想在其中实现科尔多瓦地理定位。但是,打开它时会一直出错。出于测试目的,我使用 ionic serve 并在 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');
}
})

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

【问题讨论】:

  • 您是否将插件正确添加到应用程序中?
  • 也做了一个新项目并在那里尝试过。再次运行显示“插件cordova-plugin-geolocation已经安装在android上”

标签: javascript cordova ionic-framework geolocation


【解决方案1】:

我认为问题在于您的 ngCordova 安装。 执行以下步骤 -

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

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

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

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

它一定会解决你的问题

【讨论】:

    【解决方案2】:

    我认为它在 ionic 中没有被引用为 $cordovaGeolocation。试试navigator.geolocation.getCurrentPosition?

    【讨论】:

      【解决方案3】:

      Ionic serve 仅在浏览器中模拟应用程序。 您无法访问浏览器中的 Cordova 插件。

      要获得包含的库,您需要在添加特定平台后在设备上运行应用程序,具体取决于您拥有的设备。

      对于 iOS:

      离子平台添加ios

      对于安卓:

      离子平台添加android

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

      对于 iOS:

      离子运行 iOS

      对于安卓:

      离子运行安卓

      【讨论】:

      • 不幸的是,我直接运行它时遇到问题。我试过制作一个APK并直接安装在我的手机上,不幸的是它仍然不起作用
      • 还有其他 3 种可能性: 1. 在 Visual Studio 2015 中使用它内置的跨平台工具运行它,用于使用 Ripple 进行定位和运动。 2. 尝试将您的应用程序加载到 ionic.io,然后将其下载到“离子视图”应用程序中。 3. 将其构建为一个包并在带有 APK 的本机模拟器上运行它。
      • 在您的手机(我假设是安卓)上运行它时,您是否打开了开发者模式并启用了 USB 调试
      猜你喜欢
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 2016-03-26
      • 2014-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多