我正在尝试在我的JQM / Phonegap应用程序中加载GPS协议 - 尝试点击的第一个警报但其余的失败没有我能看到的错误。据我所知,没有触及onsucess或onerror。
if (pageId === 'latlong') {
console.log("Nooooooops");
alert("trying");
navigator.geolocation.getCurrentPosition(onSuccess, onError);
function onSuccess(position) {
localStorage.set("Lat", position.coords.latitude);
localStorage.set("Long", position.coords.longitude);
alert(localStorage.getItem("Lat"));
alert(localStorage.getItem("Long"));
};
// onError Callback receives a PositionError object
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
$("#latlongLat").append(localStorage.get("Lat"));
$("#latlongLong").append(localStorage.get("Long"));
}
我在AVD和三星Galaxy s4上尝试这个但没有运气。
答案 0 :(得分:2)
三星Galaxy系列,它根本就不像Phonegap / Cordova地理位置。
根据我的经验,您需要设置其他选项,例如:
navigator.geolocation.getCurrentPosition(onSuccess, onError,{
enableHighAccuracy : true,
maximumAge : 3000,
timeout : 60000
});
首先尝试使用 enableHighAccuracy true或false,我的旧S3仅在设置为true时才有效。给它一个合理的超时,三星Galaxy系列再次有一个相当低的GPS。
另一方面,在AVD上进行测试需要超时,有时需要将 enableHighAccuracy 设置为false(仅限AVD)。
另外,不要忘记安装插件,很多人都不知道从3.0版开始,Phonegap / Cordova将设备级API实现为插件。