当用户拒绝激活位置时无法获取 - React Native Geolocation Service

Unable to get when user dennied activating location - React Native Geolocation Service

我打开这个问题并亲自回答,以帮助面临同样问题的其他用户。

在 Android 中使用 React Native 应用程序,该应用程序使用包 react-native-geolocation-service,当试图让用户激活其位置时(不是允许它,激活它),我发现取消按钮没有返回任何错误。这是我正在谈论的弹出窗口:

我使用的函数如下:

   Geolocation.getCurrentPosition(
        (position) => {
         console.log(position);
        (error) => {
          console.log(error.code, error.message);
        },
        { enableHighAccuracy: true, timeout: 15000, maximumAge: 10000 }
    });

我完全确定它是正确的,因为它是 github 存储库的副本。但是,控制台从未记录错误。

如果您遇到同样的问题,请查看下面的答案。

事实证明,问题是 Visual Studio 代码插件(可能是 Prettier 和 ESLint)的组合弄乱了我的代码。正确的代码应该是这样的:

Geolocation.getCurrentPosition(
      pos => {
        // Do somehting if location activated
      },
      error => {
        console.log(error.code, error.message);
      },
      {enableHighAccuracy: false, timeout: 15000, maximumAge: 10000}
    );

如您所见,我之前的所有代码都在"pos"括号内,也就是说只有成功才进入。由于永远无法到达错误块,因此我无法从用户那里得到否定的答案。

希望这对任何人都有用。