============问题描述============
phonegap的调用地理位置接口,还有人成功调用过啊。navigator.geolocation.getCurrentPosition(getPositionSuccess, getPositionError)
我在手机测这个接口,为什么回调函数什么都不返回呢,就连失败信息都没有返回,还有人知道为什么啊?以下是我写的js代码:
// 获取位置信息成功时调用的回调函数
function onSuccess(position) {
alert(position.coords.latitude);
}
// onError回调函数接收一个PositionError对象
function onError(error) {
alert('code: ' + error.code + '\n' +'message: ' + error.message + '\n');
}
$("#position").click(function(){
if (navigator.geolocation) {
alert( ' 浏览器支持 geolocation ' );
}else{
alert( ' 浏览器不支持 geolocation ' );
}
navigator.geolocation.getCurrentPosition(onSuccess, onError);
alert(11);
});
============解决方案1============
兄弟,找到原因了.
http://stackoverflow.com/questions/7518468/phonegap-gps-without-internet
再看看phonegap的官方文档:
http://docs.phonegap.com/en/1.8.1/cordova_geolocation_geolocation.md.html#geolocationOptions
最下面的确有这个说明.
所以,只要把
navigator.geolocation.getCurrentPosition(onSuccess, onError);
改成
navigator.geolocation.getCurrentPosition(onSuccess, onError, { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true });
就行了,
如果有错误,会提示错误 .