Sto creando un sito Web mobile che utilizza eventi di tocco JavaScript. Le cose funzionano bene in iOS Safari e Chrome per Android, ma il browser Android di serie (versione 4.1.2) mi dà problemi.Disabilitare l'attivazione di touchcancel nel browser Android
Durante un processo di tocco, gli eventi touchstart
10 e touchmove
vengono chiamati come previsto. Tuttavia, una delle azioni eseguite dal gestore touchmove
sembra attivare un evento touchcancel
prematuro. (Non sono sicuro che ciò sia significativo, ma l'azione che attiva lo touchcancel
è la modifica dell'attributo viewBox
di un oggetto SVG). Se commento questa azione, il processo di tocco procede normalmente (ovvero, il completamento di touchmove
fino a touchend
).
Tutti i miei gestori di tocco chiamano la funzione preventDefault()
, quindi il problema non è quello descritto in questo errore: https://code.google.com/p/android/issues/detail?id=19827.
Ho letto che c'è un gran numero di inconsistency among browsers per quando viene chiamato touchcancel
. Il browser Android di serie è l'unico che è problematico per me.
Esiste una soluzione? Ad esempio, è qui posso disabilitare completamente l'evento touchcancel
? Un'altra idea che ho avuto è stata quella di avere il gestore touchcancel
in modo programmatico per attivare un altro evento touchstart
/touchmove
, ma con questo non sono arrivato molto lontano. Qualsiasi idea sarebbe apprezzata.
Argh! Penso che questo problema sia ora migrato al browser Chrome! È apparso nella versione 28. Vedi https://code.google.com/p/chromium/issues/detail?id=260732. –
Vedere anche questo post, che sembra essere correlato: http://stackoverflow.com/questions/15944197/android-browser-touchcancel-being-fired-althought-touchmove-has-preventdefault –
Ho riscontrato questo problema in Chrome Browser ora, interferendo con l'utilizzo di Hammer.js. Qualcuno sa come aggirare questo? – acjay