React Native GeoLocation不适用于Android

Ros*_*tam 7 android react-native

任何人都可以确认React Native Geolocation是否真的在Android上运行?我在使用getCurrentPosition()方法时遇到位置请求超时,并且在使用方法时没有错误消息watchPosition().

我在AndroidManifest.xml上添加了所需的权限(FINE LOCATION),并允许该应用程序获得位置权限.

这是我的实现:

componentWillMount() {
 navigator.geolocation.getCurrentPosition((position) => {
        console.log('+++++++');
        console.log(position.coords.longitude);
        this.setState({
          longitude: position.coords.longitude,
          error: null,
        });
      },
      (error) => {
        console.log(error);

      },

    );
}
Run Code Online (Sandbox Code Playgroud)

React Native Version:0.42

Dav*_* Xu 0

是的,位置在我们的 Android 版 React Native 应用程序中完美运行。

首先,getCurrentPosition(..)不返回watchId。你应该watchPosition(..)为此使用。检查您的设备是否启用了位置服务,如果您在模拟器中测试它,则是否已在模拟器设置中设置了位置。另请注意:在 Android M 及更高版本上,您还需要使用 PermissionsAndroid.check(...)PermissionsAndroid.request(...)API 调用来请求权限。