sigmapi13
sigmapi13

Reputation: 2533

navigator.geolocation.getCurrentPosition not triggering in iOS simulator with React Native

In Android emulators, the below code works fine but in iOS, it doesn't even step into navigator.geolocation.getCurrentPosition.

I've updated my simulator's custom location through the debug menu but if it's not even getting into navigator.geolocation.getCurrentPosition I'm a bit lost.

constructor(props) {
    super(props);
    this.state = {
        focusedLocation: {
            latitude: 37.4219999,
            longitude: -122.0862462,
            latitudeDelta: 0.0022,
            longitudeDelta: Dimensions.get("window").width / Dimensions.get("window").height * 0.0122,
        },
    };
}    

componentDidMount() {

    console.log("did mount: ", this.state.grumblersLocation.latitude); //triggers iOS and Android

    navigator.geolocation.getCurrentPosition(pos => {
            console.log("raw pos lat: ", pos.coords.latitude); //triggers in Android only
            this.setState({
                focusedLocation: {
                    ...this.state.grumblersLocation,
                    latitude: pos.coords.latitude,
                    longitude: pos.coords.longitude
                }
            }, () => {
                console.log("state after pos lat: ", this.state.grumblersLocation.latitude);  //triggers in Android only
            });

        },
        err => {
            console.log("Fetching the Position failed: ", err); //Not triggering on either
        });

}

Upvotes: 2

Views: 3186

Answers (1)

sigmapi13
sigmapi13

Reputation: 2533

EDIT:The pop up never appeared in IOS for me because I was adding the Privacy message info to the wrong info.plist file. It needs to go here: enter image description here

EDIT: One other fix that worked for me in iOS was:

  1. Hit he home button on the simulator
  2. Click the Settings app>Privacy>Location Services>My App
  3. Then make sure the "While Using the App" was checked

enter image description here

Upvotes: 3

Related Questions