2015-11-03 12 views
6

Konfiguracja jest Google Maps Javascript API (v3) na app PhoneGap, a ja ustawień autouzupełniania:Nie można wybrać adres z autouzupełniania w Google Maps Javascript API

var that = this 
this.autocomplete = new google.maps.places.Autocomplete(domNode) 
this.listener = google.maps.event.addListener(
    this.autocomplete, 'place_changed', function (place) { 
    var place = that.autocomplete.getPlace() 
    ... 
    } 
}) 

I ten kod działa na moim Android buduje i w przeglądarce. Problem pojawia się, gdy uruchomię to w iOS. W polu wyszukiwania wpisuję ciąg znaków, wyświetlane są wyniki autouzupełniania, ale kliknięcie jednego z nich powoduje zamknięcie listy rozwijanej, ale wynik nie jest wypełniany w polu wyszukiwania. Słuchacz też nie strzela. Brak błędów w konsoli JavaScript.

To wszystko kodu Google, więc nie mam pojęcia, jak debugować. Każda pomoc będzie doceniona. Dzięki!

Odpowiedz

2

Mam problem z tym samym problemem na iPhonie w jednym z moich projektów, po wielu godzinach śledztwa, okazało się, że problem jest spowodowany przez bibliotekę fastclick lib.

FastClick.prototype.onTouchEnd = function(event) { 
    ... 
    if (!this.needsClick(targetElement)) { 
     event.preventDefault(); 
     this.sendClick(targetElement, event); 
    } 

    return false; 
}; 

FastClick.prototype.needsClick = function(target) { 
    'use strict'; 
    switch (target.nodeName.toLowerCase()) { 

    // Don't send a synthetic click to disabled inputs (issue #62) 
    case 'button': 
    case 'select': 
    case 'textarea': 
     if (target.disabled) { 
      return true; 
     } 

     break; 
    case 'input': 

     // File inputs need real clicks on iOS 6 due to a browser bug (issue #68) 
     if ((this.deviceIsIOS && target.type === 'file') || target.disabled) { 
      return true; 
     } 

     break; 
    case 'label': 
    case 'video': 
     return true; 
    } 

    return (/\bneedsclick\b/).test(target.className); 
}; 

Ponieważ .pac-container ma tylko div i span, FastClick zakłada, że ​​to nie jest klikalny i wzywa preventDefault i przezwyciężyć ten problem Dodałem needsclick klasę do wszystkich .pac-* elementów

+0

Zobacz http://stackoverflow.com/a/20056485/1823675 o dodawaniu klasy do elementów '.pac- *'. –

Powiązane problemy