Как исправить "Пропустить перетащить, поскольку мы ждем ответа WebCore на прикосновение"
Я разрабатываю приложение для Android на базе webView и пытаюсь захватить сенсорные события. однако он не работает, и я увидел это сообщение в журнале:
"Пропустите перетаскивание, поскольку мы ждем ответа WebCore для прикосновения"
Кто-нибудь знает, как решить эту проблему?
Ответы
Ответ 1
В настоящее время я сталкиваюсь с той же проблемой при реализации карты OpenLayers внутри Android WebView.
Кажется, это открытый вопрос с 2009 года: Проблема 4549
Обходной путь упоминается там: Используйте
e.preventDefault()
в каждой функции ontouch ### - (Javascript).
Другим намеком был этот ответ на SO
Это сработало для меня, но я собираюсь более подробно рассмотреть WebView-MultiTouch- Polyfill в связи с MTfix для Android (извините, как новый пользователь мне не разрешено размещать больше гиперссылок, чем два, но Google поможет вам)
Ответ 2
Я исправил эту проблему, добавив
document.addEventListener( 'touchstart', function(e){ onStart(e); }, false );
function onStart ( touchEvent ) {
if( navigator.userAgent.match(/Android/i) ) {
touchEvent.preventDefault();
}
}
Ответ 3
Для меня единственный способ заставить это функционировать - это присоединить событие напрямую, чтобы он был запущен перед веб-сайтом. addEventListenter было слишком поздно для меня, и мероприятие застопорилось в webCore и не появилось. Это замечание Galaxy с Android 4.0.4
Вот как я исправил это в своем экземпляре:
var myDiv = document.createElement("div");
myDiv.className = "myClass";
myDiv.id = "myId";
myDiv.setAttribute("data-open","false");
myDiv.ontouchmove = function(e) {
//e is touch event, this is myDiv
e.preventDefault();
//e.changedTouches[0].pageX
//http://www.w3.org/TR/touch-events/#idl-def-TouchEvent
};