Google Place place_changed侦听器无法在iPhone上运行

时间:2016-01-20 14:56:40

标签: google-maps google-maps-api-3 google-places-api google-places

我正在使用Google商家信息的自动填充功能。

在任何浏览器(IE,Chrome,Firefox,Safari Mac)上一切正常:我开始输入街道名称,点击结果,结果列表关闭,事件即将发生。

然而,在Safari Mobile上,录制结果会关闭结果列表,但事件永远不会触发。这是在iPhone 4S,iOS 9上,但我也有其他型号用户的类似报告。

我的代码在同一页面上使用Google地图,相当标准:

<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,检查了网络检查器,我看不到任何错误。我可以在控制台中看到“听众”之前的#39;并且在听众之后#39;记录的消息,所以监听器似乎已注册。但是这个地方改变了#39;在录制结果时,消息永远不会出现。

可能是什么问题?

1 个答案:

答案 0 :(得分:3)

在尝试按照Upsidown先生的建议重现小提琴中的错误时,我发现这是an outstanding issue with fastclick.js

我暂时禁用它。