Google Places слушатель мест не работает на iPhone

Я использую функцию автозаполнения Google Адресов.

Все отлично работает в любом браузере (IE, Chrome, Firefox, Safari Mac): я начинаю вводить название улицы, нажимаю на результат, список результатов закрывается и событие запускается.

Однако в Safari Mobile прикосновение к результату закрывает список результатов, но событие никогда не запускается. Это на iPhone 4S, iOS 9, но у меня были похожие сообщения от пользователей других моделей.

Мой код, который использует Google Map на той же странице, довольно стандартный:

<div id="map"></div>

<input type="text" name="location" id="location">

<script>
    function initMap() {
        map = new google.maps.Map(document.getElementById('map'), {
            // ...
        );

        var autocomplete = new google.maps.places.Autocomplete(
            document.getElementById('location'), {
                types: ['address'],
                componentRestrictions: {country: "re"}
            }
        );

        console.log('before listener');

        autocomplete.addListener('place_changed', function() {
            console.log('place changed');
        });

        console.log('after listener');
    }
</script>


<script src="//maps.google.com/maps/api/js?libraries=places&amp;callback=initMap&amp;language=fr-RE" async defer></script>

Я подключил iPhone к Mac, проверил веб-инспектор, и я не вижу ошибки. Я вижу в консоли сообщения "до прослушивателя" и "после прослушивателя", поэтому прослушиватель, кажется, зарегистрирован. Но сообщение "место изменилось" никогда не появляется при записи результата.

В чем может быть проблема?

1 ответ

Решение

Пытаясь воспроизвести ошибку в скрипке, как это было предложено MrUpsidown, я обнаружил, что это проблема с fastclick.js.

Я отключил это сейчас.

Другие вопросы по тегам