我使用的是真正的Android设备(版本5.1)
我可以使用react-native-maps确定我的位置(在我的应用程序内的地图上正确的蓝点位置)我可以使用谷歌地图应用程序并转到我的位置(GPS工作).
我正在使用一个大的超时,将enableHighAccuracy切换为true和false,删除选项等等.都没能得到navigator.geolocation来获取数据.
这是我的代码:
var options = {
enableHighAccuracy: true,timeout: 5000,maximumAge: 0
};
function success(pos) {
var crd = pos.coords;
console.log('Your current position is:');
console.log(`Latitude : ${crd.latitude}`);
console.log(`Longitude: ${crd.longitude}`);
console.log(`More or less ${crd.accuracy} meters.`);
};
function error(err) {
console.warn(`ERROR(${err.code}): ${err.message}`);
};
navigator.geolocation.getCurrentPosition(success,error,options);
我收到:ERROR(3):位置请求超时
最佳答案
两件事情.
1)如果没有缓存坐标,那实际上不是高精度响应的高超时
2)某些设备的高精度设置存在问题.
尝试将30000毫秒作为超时并删除高精度,直到找到一个有效的设置.
编辑:我发现了我记得React Native:https://github.com/facebook/react-native/issues/7495的长虫
所以,试试这个:
1)删除maximumAge属性
2)如果不起作用,请删除第三个参数并使用本机模块中的默认值.意思是,不要发送选项对象.这应该工作.