Я создал небольшое веб-приложение HTML5 для своей компании.
Это приложение отображает список элементов, и все работает нормально.
Приложение в основном используется на телефонах Android и Chrome в качестве браузера. Кроме того, сайт сохраняется на главном экране, поэтому Android управляет всем приложением (с помощью WebView, я думаю,).
Chrome Beta (и я также думаю, что Android System WebView) добавила функцию "pull down to refresh" (См. эту ссылку, например).
Это удобная функция, но мне было интересно, можно ли ее отключить с помощью метатега (или javascript), потому что обновление может быть легко вызвано пользователем во время навигации по списку, и все приложение перезагружается.
Также это функция, не требуемая приложением.
Я знаю, что эта функция по-прежнему доступна только в бета-версии Chrome, но у меня есть ощущение, что она тоже приземляется на стабильное приложение.
Спасибо!
Изменить: я удалил бета-версию Chrome, и ссылка, прикрепленная к главному экрану, теперь открывается стабильным Chrome. Таким образом, привязанные ссылки начинаются с Chrome, а не с веб-просмотром.
Изменить: сегодня (2015-03-19) переход к обновлению достиг стабильного хрома.
Изменить: из ответа @Evyn Я следую этой ссылке и получил этот код javascript/jquery, который работает.
var lastTouchY = 0;
var preventPullToRefresh = false;
$('body').on('touchstart', function (e) {
if (e.originalEvent.touches.length != 1) { return; }
lastTouchY = e.originalEvent.touches[0].clientY;
preventPullToRefresh = window.pageYOffset == 0;
});
$('body').on('touchmove', function (e) {
var touchY = e.originalEvent.touches[0].clientY;
var touchYDelta = touchY - lastTouchY;
lastTouchY = touchY;
if (preventPullToRefresh) {
// To suppress pull-to-refresh it is sufficient to preventDefault the first overscrolling touchmove.
preventPullToRefresh = false;
if (touchYDelta > 0) {
e.preventDefault();
return;
}
}
});