Pull to refresh

Comments 19

Используйте не onClick а onTouch.
Также замечал странные тормоза со ссылками, появлялись при использовании каких-то конкретных стилей, что-то вроде цвета или цвета бекграунда, я тогда так до конца и не разобрался.
Как было сказано выше, вместо события click используйте событие touchend.
Естественно, надо проверять в touchend, не было ли между touchstart и touchend события touchmove, чтобы не возникло ситуации, когда скроллинг контента будет расцениваться как нажатие.
А чтобы не заморачиваться на отлавливание touchmove между touchstart и touchend советую использовать какой-нибудь мобильно-ориентированный минималистичный фреймворк, например, Zepto (в нем есть 'tap', 'swipe' и т.п.).
В чём заморочки-то? Лишь добавляем хранение флага и его сброс и взведение в нужных местах. Делов — на три строчки кода. И зачем здесь цеплять какие-то фреймворки? Мобильный webview не очень-то радуется, когда его обвешивают кучей ненужных скриптов.
Ладно-ладно (: А почему «мобильный webview не очень-то радуется, когда его обвешивают кучей ненужных скриптов».
Причина проста — шибко медленно он их прожёвывает.
А вы, случайно, не в курсе, PhoneGap в итоге формирует приложение с веб-вью или же там все сложнее? А то все руки не доходят посмотреть.
WebView + JS + JavaScript Bridge, через который вызывается Java код посредством JS.
Беда в том, что Titanium на который я стало было начал смотреть судя по отзывам не лучше. Если кратко, то кроссплатформенная разработка с помощью него чего-то сложнее примеров это миф, каждый раз приходится пилить под конкретную платформу, потому что все работает как хочет. А полного контроля нет, так что только костыли.

Может тут есть разработчики, которые его тыкали? Правда все так плохо?
У Titanium'а принцип работы такой же, как и PhoneGap, так что да, там всё уныло
Не совсем, по началу было точно также, но теперь view пишется не на html, а нативное. На JS теперь логика только.
Знаете я столкнулся с тем, что тот же jquery mobile вроде как предоставляет данный функционал.
Беда только в том, что когда меняется страница, на ней загадочным образом тоже срабатывает это событие.
Ну или кликаешь кнопку вызвать попап, и в попапе тоже ловится это событие.
В результате пришлось в кнопках, ведущих к смене или изменению интерфейса возвращать клик обратно,
либо кнопки ставить так, что бы на следующей вьюхе под кликом ничего не было. Так что осторожней.
Событие всплывает от наследника по всем родителям (и наоборот), а тут оно ловится, скажем так братом, этого элемента. Самый простой пример это у меня есть три страницы, который по смыслу идут так первая->вторая->тертья. У каждой в левом верхнем углу кнопка назад.

При использование jquery mobile, это будут div.ui-page которые вставляются в body. Т.е они не вложены друг в друга, и вообще вставляются только в момент появления, а не заранее.

Так вот, если я перешел первая-вторая-третья страница, а на последней нажал кнопку назад, то на второй она тоже срабатывает и я оказываюсь на первой.

Вероятная причина это то, что страница успела сменится и тут срабатывает запоздалый клик, но почему так происходит непонятно.

Тоже самое если делеать интерфейс просмотра картинок, когда плашки сами убираются, а далее при тапе по картинке появляюся снова. Если тапнуть вместе где на плашке, когда она появится, будет кнопка, то кнопка тоже сработает.
Я тоже удивился почему оно тут, хотя в прочем вопрос на самом деле полезный, я в свое время полдня убил пока не дошло что надо не клик использовать.
А минусовать-то за что? Похожая проблема, причём я думаю, что предложенное по ссылке решение подойдёт и для Андроида, потому что движок (webkit) одинаковый и тут, и там.
Sign up to leave a comment.

Articles