2016-11-23 2 views
0

У меня проблема, когда на устройстве Android команда ClearInterval не работает. Если я использую его на IOS, он работает в обаянии! Убирает отлично, но на андроиде это не очистит для меня. Почему это? Я не могу честно понять это! Я запускал несколько предупреждений, и он попадает в сенсорный экран, а touchhend и таймаут работают отлично, но его временной интервал, который не очищается!Android wont clear time interval

Мой код:

var touchticker = null; 
var touchtickerint = null; 

//TouchStart Volume UP 
$("#volumeup").on("touchstart", function() { 
    touchticker = setTimeout(function() { 
     touchtickerint = setInterval(function() 
     { 
      $("#volumeup").click(); 
     }, 100); 
    }, 500); 
}); 

//TouchEnd Clear Timeout 
$(document).on("touchend", function() 
{ 
    clearInterval(touchtickerint); 
    clearTimeout(touchticker); 
}); 

ответ

1

От https://github.com/TNT-RoX/android-swipe-shim:

На некоторых Android устройств, когда пользователь касается экрана событие touchstart запускаемое, Android передает событие в WebView (JavaScript) для be обработано. Если WebView не предотвращаетdefault (в течение 200 мс), Android возобновляет естественную прокрутку и останавливает передачу сенсорных событий в WebView.

Решение проблемы в основном состояло в том, чтобы предотвратить дефолт на сенсорный старт и ручную прокрутку с помощью javascript.

var touchticker = null, 
    touchtickerint = null, 
    volumeup = $("#volumeup"), 
    isAndroid = /Android/i.test(navigato​r.userAgent); 

//TouchStart Volume UP 
volumeup.on("touchstart", function(event) { 
    if (isAndroid) { event.preventDefault(); volumeup.click(); } 
    touchticker = setTimeout(function() { 
     clearInterval(touchtickerint); 
     touchtickerint = setInterval(function() { 
      volumeup.click(); 
     }, 100); 
    }, 500); 
}); 

//TouchEnd Volume UP, Clear Timeout 
$(document).on('touchend touchcancel', function() { 
    clearInterval(touchtickerint); 
    clearTimeout(touchticker); 
}); 
+0

Отдадите это, и мы вернемся с результатами! Выглядит многообещающе. Так раздражает, как это работает на IOS, а не андроид, хотя и не уверен, почему это так! Anywho, вернется с результатами. Благодаря! – irishwill200

+0

Hi @Annarfych Не работает! – irishwill200

+0

Вы пытались использовать полный вызов: window.clearInterval? Idk, если это поможет, но, возможно, попробуйте. – Lacrioque

Смежные вопросы