google-maps - Google Places place_changed 监听器无法在 iPhone 上运行

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

我正在使用 Google Places 的自动完成功能。

在任何浏览器(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,检查了网络检查器,没有发现任何错误。我可以在控制台中看到记录了“监听器之前”和“监听器之后”消息,因此监听器似乎已注册。但在点击结果时,“位置已更改”消息永远不会出现。

可能是什么问题?

最佳答案

在尝试按照 MrUpsidown 的建议重现 fiddle 中的错误时,我发现这是 an outstanding issue with fastclick.js .

我暂时禁用了它。

关于google-maps - Google Places place_changed 监听器无法在 iPhone 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34903344/

相关文章:

javascript - Google Maps API - 数组和 InfoWindows 的问题

javascript - Google Maps API v3.0 保存对标记的引用

javascript - 在网站中实现 Google Places Api

java - 使用微调器过滤 map 标记

android - 为什么来自 Google map 的 Geocoder 返回日文字符?

javascript - 搜索后 Google Maps JavaScript API 更改缩放级别

javascript - Google map 地点 API : TypeError: autocomplete is undefined

android - 在android中的谷歌地图中获取地名

android - 从 GPS 获取位置并在 android 中的谷歌地图上设置标记

javascript - 删除谷歌地点类型之间的逗号