2016-09-06 30 views
6

Wcześniejsze aplikacje mobilne, które opracowałem, okazały się, że zdarzenie click nie działa zgodnie z oczekiwaniami na wszystkich urządzeniach (na przykład: w grach, w których użytkownik musiał szybko dotknąć/kliknąć na ekranie Zamiast wyzwalać zdarzenie click, uruchamiano podwójne kliknięcie), a użycie touchstart dało lepsze wyniki w tym, co chciałem.Przestarzałe operacje dotykowe w aplikacjach mobilnych

Od tego czasu zacząłem słuchać wydarzenia touchstart zamiast click; ale badania na Chrome, mam następujący komunikat ostrzegawczy w konsoli JS:

operacje, które wymagają wyraźnej interakcji użytkownika o zdarzeniach touchstart Performing jest nieaktualna i zostanie usunięta w M54, około października 2016. Zobacz https://www.chromestatus.com/features/5649871251963904 więcej szczegółów .

Odwiedziłem połączoną stronę (i linki wewnątrz niego) i wydaje się, że to nowe zachowanie jest, aby uniknąć pewnych niepożądanych działań, aw szczególności w celu uniknięcia trzeciej partii iframes lub reklamy (moja aplikacja ma żadnej) z otwieranie okien podręcznych. Próbowałem zmienić wydarzenie na touchend (jako jedno z linków podanych "Zdarzenie touchend będzie nadal zachowywać się jak przed"), ale otrzymało podobny komunikat ostrzegawczy.

I moje pytania:

  • Jest to coś, co dotyczy tylko Chrome, czy to wpłynie na moje aplikacje internetowe (z Cordova/PhoneGap) dla Androida i iOS?
  • Jakiego wydarzenia należy użyć, aby zastąpić touchstart i uniknąć problemów, z którymi miałem do czynienia w przeszłości? Mogę wrócić do click, ale szybkie klikanie/stukanie nadal będzie problemem.

Odpowiedz

4

Tworząc aplikację Cordova, kierujesz ją na różne wersje systemu operacyjnego, Android 5 i nowsze mają automatycznie aktualizowaną wersję internetową opartą na Chromium, więc problem prawdopodobnie wpłynie na Twoje aplikacje.

Ale ponieważ Chrome 32, przy użyciu tej rzutni <meta name="viewport" content="width=device-width">, opóźnienie kliknięcia powinno zniknąć (patrz this article), aby można było bezpiecznie używać zdarzenia click. Najnowsze WebViews na Android 5 i 6 są oparte na chromie 52.

Można również użyć fastclick bibliotekę, która będzie „naprawić” opóźnienie kliknięcia tylko wtedy, gdy jest to konieczne