我正在尝试将 ngCordova 地理定位与我的 ionic 应用程序一起使用。我做了以下事情:
1) Bower 安装并在 index.html 中包含 ngcordova.min.js
2) 在我的 Angular app.module 中注入“ngCordova”作为依赖项。
angular
.module('app', ['ionic', 'ngCordova'])
.run(runConfig);
3)在我的控制器中添加了依赖项
SomeController.$inject = ['$location', '$cordovaGeolocation',
'$ionicPlatform']
4)这就是我的控制器的样子:
(function() {
'use strict';
angular
.module('app.submission')
.controller('SomeController', SomeController);
SomeController.$inject = ['$location', '$cordovaGeolocation', '$ionicPlatform'];
function SomeController($location, $element, $cordovaGeolocation, $ionicPlatform) {
var vm = this;
vm.place = '';
vm.address = {
'latitude' : null,
'longitude' : null
}
vm.initialize = initialize;
vm.getAddress = getAddress;
function initialize() {
var input = (document.getElementById('location-search'));
var searchBox = new google.maps.places.SearchBox((input));
}
function getAddress(){
var posOptions = {timeout: 20000, enableHighAccuracy: true};
$cordovaGeolocation.getCurrentPosition(posOptions)
.then(function(position){
var lat = position.coords.latitude
var long = position.coords.longitude
console.log('lat', lat);
console.log('long', long);
}, function(error){
console.log('error:', error);
});
}
}
})();
5) ng-click 按钮调用函数 getAddress()。
当我在网络浏览器(谷歌浏览器)上测试应用程序时,我收到以下错误
TypeError: $cordovaGeolocation.getCurrentPosition is not a function
at SomeController.getAddress (SomeController.js:29)
at $parseFunctionCall (ionic.bundle.js:21044)
at ionic.bundle.js:53458
at Scope.$eval (ionic.bundle.js:23100)
at Scope.$apply (ionic.bundle.js:23199)
at HTMLButtonElement.<anonymous> (ionic.bundle.js:53457)
at HTMLButtonElement.eventHandler (ionic.bundle.js:11713)
at triggerMouseEvent (ionic.bundle.js:2863)
at tapClick (ionic.bundle.js:2852)
at HTMLDocument.tapMouseUp (ionic.bundle.js:2925)
有人可以在这里帮助我,我的代码有什么问题吗?它应该只在移动设备上工作吗?我在安卓设备上试过了,没用。