【发布时间】:2015-05-14 12:23:17
【问题描述】:
我为我的公司创建了一个小型 HTML5 Web 应用程序。
此应用程序显示项目列表,一切正常。
该应用程序主要用于安卓手机和Chrome浏览器。此外,该网站保存在主屏幕上,因此 Android 将整个内容作为应用程序进行管理(我猜是使用 WebView)。
Chrome Beta(我认为也是 Android System WebView) 引入了“下拉刷新”功能 (See this link for example)。
这是一个方便的功能,但我想知道是否可以使用一些元标记(或 javascript 内容)禁用它,因为用户在导航列表时可以轻松触发刷新,并且重新加载整个应用程序。
这也是应用程序不需要的功能。
我知道这个功能仍然只在 Chrome 测试版中可用,但我感觉它也登陆了稳定的应用程序。
谢谢!
编辑:我已经卸载了 Chrome Beta,固定到主屏幕的链接现在可以使用稳定的 Chrome 打开。所以固定链接以 Chrome 开头,而不是 webview。
编辑:今天(2015 年 3 月 19 日)下拉刷新已进入稳定版 chrome。
编辑:来自@Evyn 的回答我关注this link 并得到了这个可以工作的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;
}
}
});
正如@bcintegrity 指出的那样,我希望将来有一个站点清单解决方案(和/或元标记)。
欢迎对以上代码提出建议。
【问题讨论】:
-
是的,这真的很糟糕。处于表格中间并滚动到顶部太远,它刷新并丢失了所有内容。这是一个延迟的默认功能,如果我想刷新,我点击刷新图标!
-
如果可以在我的网络应用清单中禁用此功能会很好。不幸的是,我的网络应用程序上的每个页面都有可滚动的内容,因此几乎无法在不刷新的情况下进行导航。我有点心动了。 ://
-
这是个好信息。我讨厌禁用下拉刷新功能的网站。我想开发一项功能,使刷新工作不受页面内容的影响。
-
作为 Web 开发人员,下拉刷新与数据驱动的网站不兼容,因为它会重新加载应用程序。它使用户无法在不刷新整个页面的情况下滚动到页面顶部。我 100% 支持 Chrome,希望他们删除这个反功能。
-
我遇到了这个GC“功能”……很多网页,很多表格,一个不小心用手指下拉,这个页面上的数据丢失了!延迟功能 IMO。默认情况下它应该是关闭的,谁需要它然后让代码它。我想知道为什么我的“客户”偶尔会丢失他们在 GC 上的数据...
标签: android html google-chrome meta-tags