在某些Android上以react-native更新Geolocation失败

时间:2018-07-26 19:21:02

标签: android react-native geolocation

在本机项目中,我需要检查地理位置。我写了这个

export default navigator => new Promise((resolve, reject) => {
  if (navigator.geolocation.requestAuthorization) {
    navigator.geolocation.requestAuthorization();
  }
  navigator.geolocation.getCurrentPosition(resolve, reject, {
    timeout: 3000,
  });
});

它可以工作,但有时我需要重新检查。在这种情况下,这个承诺总是返回与第一次相同的结果。

我用Google搜索,发现我应该添加

enableHighAccuracy: true

不幸的是,在 some 机器人上,其结果是从未获得任何坐标。所有iPhone都可以正常工作。

例如,它可在Motorola g5,Android 7.1上运行,但在Samsung SM-G530MU,Android 4.4.4和LG Nexus 5,Android 6.0.1上无法运行。

在这一点上,我决定妥协,但这显然不是一个好的解决方案。现在,一个应用程序永远不会更新Android上的坐标,但至少总会得到一些结果。

export default navigator => new Promise((resolve, reject) => {
  if (navigator.geolocation.requestAuthorization) {
    navigator.geolocation.requestAuthorization();
  }
  navigator.geolocation.getCurrentPosition(resolve, reject, {
    timeout: 3000,
    enableHighAccuracy: (Platform.OS === 'ios')
});

});

有人有什么主意,应该怎么做才能使Geolocation在Android上正常工作?某些版本可能需要某些权限,而其他版本不需要吗?其他版本?

0 个答案:

没有答案