谷歌地图javascript api bug android浏览器(果冻豆和以前)

Google maps javascript api bug android browser (Jelly bean and prior)

本文关键字:api javascript bug android 浏览器 谷歌地图      更新时间:2023-09-26

所以,这个问题只涉及旧的android浏览器(在chrome成为标准浏览器之前)和google maps javascript api v3。

我正在开发一个网站,与一个应用程序与webview一起,显示(部分)该网站。

最近,网站中包含的谷歌地图窗口已经停止正常工作。地图显示出来,但地图上的任何触摸事件,比如拖拽地图以显示其他位置,以及两个手指缩放都不再工作了。javascript控制台显示的错误(在地图上的每个触摸事件上)是:

Uncaught TypeError: Illegal constructor -- From line 125 of http://maps.googleapis.com/maps-api-v3/api/js/26/2/intl/nl_ALL/common.js

在我的代码中寻找错误的一天后,我觉得这可能是谷歌地图javascript api中的一个错误。这个错误不仅出现在我的网站上,而且出现在我能找到的所有嵌入式谷歌地图上。甚至在谷歌自己的api文档中。这个错误只发生在旧的标准android浏览器中,但旧的android版本仍然在使用中相当普遍,我不能告诉我的用户切换到另一个浏览器,因为它必须在webview中工作。

我可以在三星xcover 2 (gt-s7710, android 4.1.2)和api 17模拟器(android 4.2)上可靠地重现此问题:https://developers.google.com/maps/documentation/javascript/

有没有其他人遇到这个问题和/或找到解决方法?

编辑:

我向google提交了一个bug报告,它被接受了,所以在此期间我想Dvy Hrnsch的解决方案是最好的解决方案!

我遇到了和你描述的一样的问题。

:

至少我找到了一个简单的解决方法(经过几个小时的头痛)。

我刚刚发现,谷歌地图Javascript API有3个API引用。

"实验版"、"发行版"answers"冻结版"。

如果你包含API而没有指定确切的版本,它将默认使用"实验版本"。

正如我注意到的,这个版本(3.26)在30日得到了更新。

解决方案:

更改API:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?key=API-KEY&libraries=geometry,places"></script>

src = " http://maps.google.com/maps/api/js? v = 3 ,关键= API-KEY&图书馆=几何,地方"

现在它使用"发布版本"(最后一次更改在17。(2016年8月发布)

来源:https://developers.google.com/maps/documentation/javascript/versions

对于我来说,它现在可以在Android 4.3 (API Level 18)上使用cordova。

我希望这对你也有帮助。

祝福

在找到Dvy Hrnsch的答案之前,我几乎疯了。我想补充一些对这件事有用的信息:

如果缺少v=3参数,使用WebView 534.30或更早版本的Android应用程序(作为Android 4.3或更早版本的一部分)将无法提供Google Maps的全部功能。虽然图表正在正确显示,并且可以通过按[+]和[-]放大和缩小,但推图表或使用click事件是不可能的。

对于较新的Android版本(使用WebView 537.36或更低版本),这些问题不会发生。

汤姆