2016-09-06 19 views
6

Geliştirdiğim eski mobil uygulamalarda, click olayının tüm aygıtlarda beklendiği gibi çalışmadığını fark ettim (örneğin: kullanıcının ekrana hızla vurması/tıklatması gereken oyunlarda) click olayını tetiklemek yerine, çift tıklatma tetiklendi) ve touchstart kullanmak istediğim için daha iyi sonuçlar verdi.Mobil uygulamalarda onaylanmamış dokunma işlemleri

O zamandan beri click yerine touchstart etkinliğini dinlemeye başladım; touchstart olaylara açık kullanıcı etkileşimi gerektiren işlemlerinin gerçekleştirilmesi

fazla ayrıntı için bakınız https://www.chromestatus.com/features/5649871251963904 Ekim 2016 civarında, kullanımdan kaldırılmıştır ve M54 kaldırılacaktır: ama Chrome'da test, ben JS konsolunda aşağıdaki uyarı mesajı var . dan (benim app hiçbiri yoktur)

ben bağlantılı sayfasını (ve içindeki bağlantılar) ziyaret etti ve yeni davranış, bazı istenmeyen eylemlerden kaçınmaya gibi görünüyor ve özellikle üçüncü taraf iframes veya reklamları engellemek için pop-up'ları açmak. Etkinliği touchend olarak değiştirmeyi denedim (" numaralı bağlantıda belirtilen bağlantılardan biri olarak Bağlantı olay önce davranmaya devam edecektir"), ancak benzer bir uyarı iletisi aldım.

Ve sorularım:

  • sadece Chrome'u etkileyen şey mi, yoksa Android ve iOS için (Cordova/PhoneGap ile) benim web uygulamalarını etkileyecek?
  • touchstart'u değiştirmek ve geçmişte karşılaştığım sorunları önlemek için hangi etkinliği kullanmalıyım? click'a geri dönebilirdim, ancak hızlı tıklama/dokunma hala sorun olur.

cevap

4

Cordova uygulaması oluştururken, farklı işletim sistemi sürümlerini hedeflersiniz, Android 5 ve üstü Chromium'u temel alan otomatik güncelleme web görünümüne sahiptir, böylece sorun muhtemelen uygulamalarınızı etkileyecektir.

Ancak Chrome 32'den bu yana, <meta name="viewport" content="width=device-width"> numaralı görüntüyü kullanırken, tıklama gecikmesi gitmeli (bkz. this article), böylece click olayını güvenle kullanabilirsiniz. android 5 ve 6 ile ilgili son web görünümleri Krom 52. dayanmaktadır

Ayrıca tıklama gecikmesi sadece gerekli yerlerde "düzeltmek" olacak fastclick kütüphaneyi kullanabilirsiniz

İlgili konular