navigator.geolocation.getCurrentPosition не запускается в симуляторе iOS с React Native - PullRequest
0 голосов
/ 19 мая 2018

В эмуляторах Android приведенный ниже код работает нормально, но в iOS он даже не входит в navigator.geolocation.getCurrentPosition.

Я обновил пользовательское местоположение моего симулятора через меню отладки, но если он даже не попадает в navigator.geolocation.getCurrentPosition, я немного растерялся.

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
        });

}

1 Ответ

0 голосов
/ 29 мая 2018

РЕДАКТИРОВАТЬ: всплывающее окно никогда не появлялось в IOS для меня, потому что я добавлял информацию о сообщении о конфиденциальности в неправильный файл info.plist.Это должно быть здесь: enter image description here

РЕДАКТИРОВАТЬ: еще одно исправление, которое работало для меня в iOS было:

  1. Нажмите кнопку домой на симуляторе
  2. Выберите приложение «Настройки»> «Конфиденциальность»> «Службы определения местоположения»> «Мое приложение»
  3. . Затем убедитесь, что установлен флажок «При использовании приложения»

enter image description here

...