Tôi đang cố gắng xây dựng một trang web cảm nhận được cảm ứng từ người dùng và kéo và đối tượng dọc theo canvas.Trình duyệt Android: touchcancel đang được kích hoạt mặc dù touchmove đã chặnDefault
Vì vậy, tôi đang làm một cái gì đó như thế này:
var touchStart = function(e) {
e.preventDefault();
// Do stuff
}
var touchMove = function(e) {
e.preventDefault();
console.log("Touch move");
// Move objs
}
var touchEnd = function(e) {
e.preventDefault();
console.log("Touch start!");
// clean up stuff
}
var touchCancel = function(e) {
e.preventDefault();
// Oh NO touch cancel!
console.log("Touch cancel!");
}
bindElemOrig.addEventListener('touchstart', touchStart, false);
bindElemOrig.addEventListener('touchmove', touchStart, false);
bindElemOrig.addEventListener('touchend', touchStart, false);
bindElemOrig.addEventListener('touchcancel', touchStart, false);
Nó hoạt động tốt cho đến một lúc nào đó.
Vấn đề là ngay sau khi tôi nạp quá nhiều objs, có vẻ như với tôi rằng touchmove mất quá nhiều thời gian để trả lời, và touchcancel được kích hoạt. Vấn đề là ngay sau khi touchcancel được kích hoạt, tôi không nhận được thêm bất kỳ sự kiện nào khác nữa, và tôi không thể cảm nhận được chuyển động nữa.
Có ai phải đối mặt với vấn đề này không? Tôi biết về các lỗi trong Android, nơi bạn phải gọi ngăn chặnDefault (touchend event in ios webkit not firing?) nhưng trên trường hợp này có vẻ như nó không hoạt động vì gánh nặng bộ nhớ.
Cảm ơn bạn!
Tôi đang gặp sự cố tương tự trên Android 2.3. Android 4+ có vẻ ổn. Bạn có tìm thấy gì về chủ đề này không? – dioslaska
@dioslaska shim @ https: // github.com/TNT-RoX/android-swipe-shim –
Để tham khảo sau này, câu trả lời ở đây hoạt động hoàn hảo: http://stackoverflow.com/questions/10367854/html5-android-touchcancel –