未知提供者:$cordovaGeolocationProvider
Posted
技术标签:
【中文标题】未知提供者:$cordovaGeolocationProvider【英文标题】:Unknown provider: $cordovaGeolocationProvider 【发布时间】:2016-07-29 18:29:50 【问题描述】:我目前正处于通过 Ionic 构建应用程序天气的开始阶段。现在我想实现科尔多瓦地理定位,我有错误Unknown provider: $cordovaGeolocationProvider <- $cordovaGeolocation
我尝试修复但没有成功,但是打开它时会一直出错。出于测试目的,我使用 ionic serve 并在 localhost 中检查它。
我的代码
(function()
angular.module('app.weather', ['ionic'])
.factory('Weather', function($q, $http)
var deferred = $q.defer();
function getCurrentWeather(lat, lng)
var url = 'https://api.forecast.io/forecast//' + lat + ',' + lng + '?callback=JSON_CALLBACK';
$http.jsonp(url)
.success(deferred.resolve)
.error(deferred.reject);
return deferred.promise;
return
getCurrentWeather: getCurrentWeather
;
)
.controller('WeatherCtrl', function($scope, $cordovaGeolocation, Weather)
$scope.loading = true;
$scope.toCelsius = function(temperature)
return ((temperature - 32) / 1.8).toFixed(1);
;
$cordovaGeolocation
.getCurrentPosition(
timeout: 10000,
enableHighAccuracy: false
)
.then(function(position)
var lat = position.coords.latitude;
var long = position.coords.longitude;
Weather.getCurrentWeather(lat, long).then(function(data)
$scope.weatherInfo = data;
$scope.loading = false;
, function(error)
//TODO Display error message
);
, function(err)
//TODO Display error message
);
);
)();
代码html
<ion-view title="الرئيسية" id="page2" style="background-color:#FFFFFF;" class=" ">
<ion-content padding="true" class="has-header">
<ion-pane>
<div ng-controller="WeatherCtrl as weatherCtrl">
<div ng-show="loading">
Carregando informações...
</div>
<div ng-hide="loading">
<p>
Temperatura: toCelsius(weatherInfo.currently.temperature)º
</p>
<p>
Sensação térmica: toCelsius(weatherInfo.currently.apparentTemperature)º
</p>
</div>
</div>
</ion-content>
</ion-view>
【问题讨论】:
试试这个***.com/a/36158618/5059916 你包含ng-cordova
文件吗?
【参考方案1】:
在你的模块中添加“ngCordova”
(function()
angular.module('app.weather', ['ionic','ngCordova'])
然后将 ngcordova.min.js 文件链接添加到您的 index.html 中
【讨论】:
【参考方案2】:确保您已安装ngCordova
或Ionic Native
,否则您不能使用$cordovaGeolocation
,因为它是在这些库之一中定义的包装器。
您可以找到有关如何安装 ngCordova
here 和 here for Ionic Native
的说明。最近还有一篇关于Ionic Native
here 的文章可能很有趣。
另外请记住,大多数 Cordova 插件无法在浏览器中运行,因此您可能需要在实际设备上进行测试。
【讨论】:
【参考方案3】:您是否安装了 $cordovaGeolocation 插件?
$cordova地理位置描述:http://ngcordova.com/docs/plugins/geolocation/
如果没有,您可以通过以下方式安装它:
cordova plugin add cordova-plugin-geolocation
【讨论】:
【参考方案4】:$cordovaGeolocation 功能以及任何其他本机功能只能在模拟器或设备上使用。如果您从浏览器提供应用程序,则它无法与插件交互,因此未定义。
【讨论】:
以上是关于未知提供者:$cordovaGeolocationProvider的主要内容,如果未能解决你的问题,请参考以下文章
$cordovaGeolocation.getCurrentPosition 上的“非法访问”
Cordova各个插件使用介绍系列—$cordovaGeolocation获取当前位置
Cordova各个插件使用介绍系列—$cordovaGeolocation获取当前位置
在 Ionic 中使用 navigator.geolocation 或 $cordovaGeolocation
在 Ionic 中使用 navigator.geolocation 或 $cordovaGeolocation
未捕获的错误:[$injector:modulerr] 添加 $cordovaGeolocation 和 $ionicPopup 时无法实例化模块