我使用navigator.geolocation.getCurrentPosition构建一个android Ionic应用程序,这是我的代码:
var opsi = {maxAge: 30000, frequency : 30000, enableHighAccuracy: false};
function success (pos) {
var lat1 = pos.coords.latitude;
var long1 = pos.coords.longitude;
$http.post(link, {
devicetime : getdtNow(),
token : token,
longlat : {
lat: lat1,
long: long1,
},
searchTerm : ''
}).success(function (res){
$ionicLoading.hide();
var s = JSON.stringify(res);
var reply = JSON.parse(s);
if (reply.result == 'OK'){
parkingsites = reply.parkingsites;
if (maplistview==0){
gmap($scope,$location);
getparkimage($scope);
}
else if (maplistview==1){
getparkimage($scope);
}
}
else if(reply.result == 'TOKENNOTFOUND'){
state='templates/loginregister.html';
ct_state = 'loginregister';
$location.path('/');
$ionicPopup.alert({
title: 'App Warning',
template: 'Sesi Anda Telah Habis'
});
}
else {
}
}).error(function (data) {
$ionicLoading.hide();
$ionicPopup.alert({
title: 'App Warning',
template: 'Koneksi Ke Server Bermasalah'
});
});
};
function error(err) {
$ionicLoading.hide();
$ionicPopup.alert({
title: 'App Warning',
template: err.message
});
//console.warn('ERROR(' + err.code + '): ' + err.message);
};
navigator.geolocation.getCurrentPosition(success, error, opsi);
当我在除了Kitkat 4.4.4之外的所有操作系统的Android设备上尝试我的应用程序时,该代码运行良好,但是当我在Android 4.4.4中尝试时,它总是调用函数错误,消息超时已到期,任何人都可以帮忙?
答案 0 :(得分:1)
我只需使用以下代码即可使用android 4.4.4:
function getUserPosition () {
var positionOptions = {timeout: 10000, enableHighAccuracy: true};
return $ionicPlatform.ready()
.then(function () {
return $cordovaGeolocation.getCurrentPosition(positionOptions);
}, function (error) {
console.error("Error getting user position: " + angular.toJson(error));
});
}
我正在使用cordova geolocation plugin。
Cordova版本:5.4.1,离子骨架版本:1.2.1,离子型cli版本:1.7.12。