Google 地图的标记在 iPhone/iPad 上不显示 InfoBubble

Google map's marker doesn't display InfoBubble on iPhone/iPad

关于 Google 地图的所有内容在不同的桌面浏览器中运行良好,即使在较小的屏幕中也是如此 - 初始化、标记、信息气泡等都运行良好。但是在 iPhone/iPad 上,单击标记时不会出现信息气泡。

研究 Whosebug 并遵循各种解决方案后:

  1. Google Map Infowindow not showing properly
  2. Google Maps API v3: InfoWindow not sizing correctly
  3. Why does Safari on the iPad not display my marker on an embedded Google Maps page?
  4. how can i bind touch events for a marker in google maps?
  5. click event is not working in ipad

问题依旧。任何人都可以帮忙吗?先谢谢你了!

//set up infobubble
var infowindow = new InfoBubble({
    map: map,
    maxHeight: 380,
    minWidth: 270,
    shadowStyle: 0,
    pixelOffset: new google.maps.Size(0, 35),
    padding: 0,
    borderRadius: 0,
    arrowSize: 8,
    borderWidth: 0,
    borderColor: '#fff',
    disableAutoPan: true,
    hideCloseButton: true,
    arrowPosition: 50,
    arrowStyle: 0
});

// open infowindow when marker is clicked
var mm=[];
google.maps.event.addListener(marker, 'click', (function(marker, i) {
  return function()
  {
    if(mm !='')
    {
      mm[0].setVisible(true);
      mm=[];
    }
    mm.push(marker);
    marker.setVisible(false);
    infowindow.setContent(this.IWcontent);
    infowindow.open(map, marker);
  }
})(marker, i));

以防万一有人遇到类似的问题。我们需要 3 天时间来解决这个问题。我们的方法是:

  1. 通过 http
  2. 加载 google 地图 api
  3. 在不使用 async 或 defer 的情况下 infobubble.js 之前加载地图