Pull to refresh

Как ускорить реакцию на нажатие ссылок в WebView под Android

Reading time2 min
Views4.4K
Приветствую всех Хабровчан!

Излагаю суть проблемы: есть приложение на Андроид — его суть — просто обертка вокруг WebView.
Весь функционал вынесен в PHP (на сервере) и JavaScript (на клиентских страницах).
Основная цель — на страницах много кнопок, которые пользователь может включать/выключать, тыча в них пальчиком (они при этом просто меняют цвет фона). Кнопки выполнены в виде ссылок, для которых в CSS заданы размеры, display: block, float: left, и т.п. (При попытке использовать обычные кнопки — <input type=«button»… /> — результат не меняется)

Так вот, при нажатии на кнопку (ссылку) смартфон делает паузу (где-то 300-400 мс), затем издает короткий звук нажатия, затем подсвечивает кнопку оранжевой рамкой и убирает ее (рамку). На все это уходит почти секунда (может и немного меньше, но все равно это ужасно мешает). Кнопок в окне много, нажимать их нужно быстро.

Можно ли избавиться от данной паузы и, возможно, эффекта подсветки?

Можно, конечно, сделать подсветку прозрачной, плюс прочие шаманства:
a, a:hover, input, textarea {
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-touch-callout: none;
-webkit-user-select: none;
}

body {
-webkit-text-size-adjust: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-touch-callout: none;
-webkit-user-select: none;
}


Но время на ее прорисовку и убирание все равно тратится! Да еще и эта пауза перед звуком и подсветкой!

Стандартные кнопки в самом Android-приложении работают быстро. Но писать весь функционал на Java пока нереально (в силу недостаточного опыта программирования на Java). А вот на JavaScript + PHP + MySQL пишу свободно и все что угодно. Поэтому и был выбран такой путь.

В общем, если кто знает, чего нужно покрутить в WebView или WebSettings, чтобы уменьшить время прорисовки «финтифлюшек» при нажатии ссылки на странице, загруженной в компонент — буду очень признателен.
Tags:
Hubs:
0
Comments19

Articles

Change theme settings