如何提高iPad kiosk web应用程序中按钮的响应能力?
我为我们的iPad2信息亭开发了一个网络应用程序,今天刚刚上线。我们几乎所有的客户都在使用触摸屏时遇到问题。他们正在敲打按钮,而应用程序没有显示触摸 我从来没有想到用户与触摸屏交互会有这么大的困难。我想知道,作为一名开发人员,我是否可以做些什么来让它更加用户友好。在触摸和实际注册之间有一点延迟,这使得用户很难知道他们按下了按钮 我可以有把握地说,按钮很大——事实上可能比iOS指南要大——这是一个web应用程序——它不是用Objective-C编写的,而是用PHP和jQuery编写的。所有操作都发生在web应用程序中,该应用程序使用简单的UIWebView iOS应用程序访问,该应用程序仅连接到站点 澄清一下,有两个问题: 触摸根本没有注册-客户沮丧地越来越用力地按 对于已注册的触摸事件,存在延迟 感谢下面评论中的一些建议,这最终让我想到了这一点,我能够极大地提高web应用程序的响应能力。但我知道我的代码还有待改进。我的应用程序在任何主干mvc之外使用backbone.js和jquery的组合 下面是一个jquery事件的示例,我对其进行了修改,以防止默认的touchend行为—它最初是一个click事件如何提高iPad kiosk web应用程序中按钮的响应能力?,ios,ipad,web-applications,kiosk,Ios,Ipad,Web Applications,Kiosk,我为我们的iPad2信息亭开发了一个网络应用程序,今天刚刚上线。我们几乎所有的客户都在使用触摸屏时遇到问题。他们正在敲打按钮,而应用程序没有显示触摸 我从来没有想到用户与触摸屏交互会有这么大的困难。我想知道,作为一名开发人员,我是否可以做些什么来让它更加用户友好。在触摸和实际注册之间有一点延迟,这使得用户很难知道他们按下了按钮 我可以有把握地说,按钮很大——事实上可能比iOS指南要大——这是一个web应用程序——它不是用Objective-C编写的,而是用PHP和jQuery编写的。所有操作都发
$('body').on( 'touchend', '#s-id', function(event) {
event.preventDefault();
$('form[name=client-login]').submit();
});
以及主干视图的一个示例,它最初也使用单击事件
var CounterView = Backbone.View.extend({
el: "body",
events: {
"touchend #b-q-prev": "qPrev",
"touchend #b-q-next": "qNext"
},
qNext: function(e){
e.preventDefault();
this.model.qIncrease();
this.qShow();
},
qPrev: function(e){
e.preventDefault();
this.model.qDecrease();
this.qShow();
},...etc...
实现这些技术解决了我的两个问题,因为应用程序根本不在乎你最初触摸按钮后做什么,一旦你松开它,它就会认为你触摸的原始按钮被按下了。这允许我的客户随意点击触发事件。它还可以更快地解决问题2
我不相信我已经正确地实施了这一点。一个主要的缺点是,当我使用非触摸设备进行测试时,没有事件注册,因为我从java脚本中删除了所有的点击事件。我是否应该查看多个事件,而不仅仅是阻止默认触摸端?根据我所做的研究,没有明确的解决方案——因为jquery mobile尚未实现它?因为它是实时的,您能否共享URL,以便我们查看您所引用的内容?尽量减少触摸和对触摸的响应之间的延迟?@Jeremey1026它位于我们的内部网络上-不公开visible@onnoweb我怎样才能最大限度地减少延迟?甚至连记录触摸都是一个问题。注意,在iOS上,触发onclick有250毫秒的延迟事件,操作系统尝试等待并查看您是否真的要滚动或其他内容。根据您的需要,您可能可以监听mousedown事件或类似事件,从而避免250毫秒的延迟。既然是活的,,您能否共享URL,以便我们查看您所引用的内容?尽量减少触摸和对触摸的响应之间的延迟?@Jeremey1026它位于我们的内部网络上-不公开visible@onnoweb我怎样才能最大限度地减少延迟?甚至连记录触摸都是一个问题。注意,在iOS上,触发onclick有250毫秒的延迟事件,操作系统尝试等待并查看您是否真的要滚动或其他内容。根据您的需要,您可能可以监听mousedown事件或类似事件,从而避免250毫秒的延迟。