3

我正在使用 Google Maps AutoComplete 界面在用户键入时自动查找位置。它适用于我测试过的所有浏览器(Chrome、FireFox、iOS 和更新的 Android 设备),Windows Phone 除外。

在 Windows 手机上,places_changed 事件似乎没有被触发,文本框也不会像在其他浏览器上那样自动更新。

这是一个简化的场景,演示了表单上的单个文本框:

<div class="container" style="padding: 40px">
    <label>Enter a location</label>
    <input id="location" value="" class="form-control" />
</div>

<script type="text/javascript"
        src="http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true&libraries=places">
</script>
<script>
    var el = document.getElementById('location');
    var autocomplete = new google.maps.places.Autocomplete(el);

    google.maps.event.addListener(autocomplete, 'place_changed', function () {                
            var place = autocomplete.getPlace();
            if (place.geometry.location)
                // delay setting the value - otherwise maps uses default always
                setTimeout(function() { el.value = place.name; }, 200);
        });
</script>

你可以试试这个: http ://embed.plnkr.co/kAwU0Fl97nEQr5HhxOTH/preview

它在所有浏览器中都能正常工作(包括 IE 11,它据称使用与 Windows Phone 8 相同的渲染引擎),但在 Windows Phone 上会弹出下拉框,但不会触发文本框的自动更新,也不会触发显式事件代码仅使用名称更新文本。

有没有办法解决这个问题?

4

1 回答 1

3

有人有这方面的更多信息吗?我遇到了同样的问题 - Google Autocomplete Places 文本框在所有桌面浏览器和几乎所有手机浏览器上都可以正常工作,Windows Phone 除外 - 您无法在 Windows Phone 的列表中选择条目。

我现在已经在 Windows Phone 7.5、Windows Phone 7.8 和 Windows Phone 8.0 上使用 Google Places 自动完成功能测试了一个网站

Windows Phone 7.5 根本不工作,(甚至没有显示页面),7.8 和 8.0 手机显示上述错误,显示正确的下拉菜单,但无法选择条目。

我还不能测试即将发布的 Windows Phone 8.1 更新(它作为开发人员预发布更新提供,但在接下来的一个月内还不能提供给电话最终用户)。

我有点希望 Windows Phone 8.1 更新可能带来解决方案。在测试中,我注意到 Windows Phone 7.5/8 声明他们使用“Internet Explorer 9”(移动版),而 Windows Phone 8.0 使用“Internet Explorer 10”(移动版)。即将推出的 Windows Phone 8.1 更新据称使用了“Internet Explorer 11”。

该线程已有 2 个月大,并且有一个较旧的线程(8 个月)类似于Google 地方自动完成功能在 Windows 移动 IE 浏览器中不起作用

该问题也已在 Google 板上报告,网址为https://code.google.com/p/gmaps-api-issues/issues/detail?id=6120

希望谷歌能解决这个问题,或者其他人有可能解决这个问题吗?

编辑:我联系了 Google 支持,他们向我指出了官方支持的 Google Maps JavaScript API 支持的浏览器常见问题解答:

https://developers.google.com/maps/faq#browsersupport

Google 特别支持所有桌面浏览器,以及 iOS 和 Android 上的移动浏览器。它们不支持在 Windows Phones/Mobile 设备上使用 Javscript 客户端 API。

于 2014-05-12T08:48:57.417 回答