您好我想在我的应用中实现一些地理定位功能。
所以我实现了这样的watchposition函数:
.controller('NavigationCtrl', function ($scope,$cordovaGeolocation) {
var watchOptions = {
frequency : 1000,
timeout : 20*1000,
enableHighAccuracy: false // may cause errors if true
};
var watch = $cordovaGeolocation.watchPosition(watchOptions);
watch.then(
null,
function(err) {
alert("WatchPosition failed: "+JSON.stringify(err));
},
function(position) {
$scope.position = position;
}
);
})
在模板的第一次调用中,我得到了一个地理定位但是在20秒之后我得到了一个错误:
code:3, message:'Position retrieval timed out'
我在iPhone 5s iOS 8.3上测试应用程序。
我用Google搜索并发现cordova 3.1在地理定位方面存在一些错误,因此我选择使用html api进行地理定位,例如: https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation
但它在我的离子框架应用程序中没有显示任何内容。
我错过了什么?
我使用的是cordova 4.3.0和离子1.3.19。
答案 0 :(得分:1)
我发现我必须将代码放在$ionicPlatform.ready
函数中,以确保设备在开始进行地理定位之前已准备就绪。现在它工作正常。