2015-07-05 22 views
11

Rozważmy następujący kod:Android Webview multitouch wydarzenie touchstart nie współpracuje z ponad 2 palce

canvas.addEventListener('touchstart', function(event) { 
    console.log('start'); 
}); 

Kiedy dotknij 2 palce jednocześnie Mam następujące wyjściowe (co jest cool, ponieważ jest drukowane dwa razy):

I/SnapScrollController(26508): setSnapScrollingMode case-default no-op 
I/chromium(26508): [INFO:CONSOLE(69)] "start", source: file:///android_asset/index.html (69) 
I/chromium(26508): [INFO:CONSOLE(69)] "start", source: file:///android_asset/index.html (69) 

Ale kiedy mogę używać więcej niż 2 palce jednocześnie miałem ten sam rezultat, co robię źle? Oczekiwano, że dziennik "uruchomi się" tyle razy, ile palców używałam.

W drugiej stronie touchmove i touchend działa dobrze.

Wysłałem kod here

+0

jest posible dostać 3 lub więcej dotyka ?? – Ricardo

+0

co się stanie, jeśli zarejestrujesz 'event.touches.length' w programach obsługi zdarzeń touchstart i touchmove? Problem może polegać na tym, że po odłożeniu naszego trzeciego palca przesuwasz jeden z już dotykających się palców i powodujesz, że system przechodzi w "ruchomy" tryb, od którego od tego momentu wystrzeliwują się odczyty touchmove. –

+0

@EdBallot Mam już test, kiedy umieszczam na ekranie 2 palce (przy tym samym zębie), a następnie jeszcze jeden, wynikiem jest to, że następne palce drukują swoje logi. Moim problemem jest to, że chcę uchwycić wszystkie 3,4 lub 5 touchStartEvent umieszczając palce na ekranie w tym samym czasie. Aktualizuję kod przesyłania pytań. – Ricardo

Odpowiedz

0

Problem polegał na moim HTC One urządzenia. Wystarczy włączeniu powiększenia Gesty moim starcie urządzenia do połowu wszystkie zdarzenia wywołane palcami (więcej niż dwóch)

enter image description here