想要在React native 0.55.1中获得当前位置

时间:2019-05-01 11:01:17

标签: react-native geolocation geocoding

我想获取当前位置它适用于当前React本机版本,但我希望它适用于React本机版本0.55.1

我以这种方式尝试过 而且有效

constructor(props) {
      super(props);

      this.state = {
        latitude: null,
        longitude: null,
        error:null,
      };
    }
componentDidMount() {
      navigator.geolocation.getCurrentPosition(
         (position) => {
           console.log("wokeeey");
           console.log(position);
           this.setState({
             latitude: position.coords.latitude,
             longitude: position.coords.longitude,
             error: null,
           });
         },
         (error) => this.setState({ error: error.message }),
         { enableHighAccuracy: false, timeout: 200000, maximumAge: 1000 },
       );
     }

然后我用这个打印

<View>

          <Text> Longitude:- {this.state.latitude} </Text>
          <Text> Latitude:- {this.state.longitude} </Text>
          <Text> {this.state.error} </Text>

        </View>

但是对于反应本机0.55.1,它不起作用。 请帮我怎么办?

1 个答案:

答案 0 :(得分:0)

对于android,您应在android清单文件中添加以下提及的权限

 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

不要忘记在设备中启用GPS

您也可以使用此方法获取当前位置

navigator.geolocation.watchPosition(
         (position) => {
           console.log("wokeeey");
           console.log(position);
           this.setState({
             latitude: position.coords.latitude,
             longitude: position.coords.longitude,
             error: null,
           });
         },
         (error) => this.setState({ error: error.message }),
         { enableHighAccuracy: false, timeout: 200000, maximumAge: 1000 },
       );