android – 反应native native navigator.geolocation.getCurrentPosition不能正常工作

前端之家收集整理的这篇文章主要介绍了android – 反应native native navigator.geolocation.getCurrentPosition不能正常工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我使用的是真正的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)如果不起作用,请删除第三个参数并使用本机模块中的默认值.意思是,不要发送选项对象.这应该工作.

猜你在找的Android相关文章