已弃用移动应用程序的触摸操作
Deprecated touch operations on mobile apps
在我过去开发的手机应用中,我发现click
事件在所有设备上都不能像预期的那样工作(例如:在用户必须快速点击屏幕的游戏中,而不是触发click
事件,双击被触发),使用touchstart
可以得到我想要的更好的结果。
从那时起,我开始听touchstart
事件,而不是click
;但是在Chrome上测试,我在JS控制台中得到以下警告消息:
在touchstart事件上执行需要显式用户交互的操作已被弃用,并将在2016年10月左右在M54中删除。详见https://www.chromestatus.com/features/5649871251963904
我访问了链接页面(和它里面的链接),似乎这个新的行为是为了避免某些不必要的行动,特别是避免第三方iframes
或广告(我的应用程序没有)从打开弹出窗口。我尝试将事件更改为touchend
(作为其中一个链接声明" touchend事件将继续像以前一样运行"),但得到了类似的警告消息。
和我的问题:
- 这是只影响Chrome的东西,还是会影响我的web应用程序(与Cordova/Phonegap)为Android和iOS?
- 我应该用什么事件来代替
touchstart
,避免我过去遇到的问题?我可以回到click
,但快速点击/点击仍然是一个问题。
当你创建Cordova应用时,你的目标是不同的操作系统版本,Android 5及以上有基于Chromium的自动更新webview,所以这个问题可能会影响你的应用。
但是自从Chrome 32,当使用这个viewport <meta name="viewport" content="width=device-width">
,点击延迟应该消失(见这篇文章),所以你可以安全地使用click
事件。android 5和android 6上最新的webviews是基于Chromium 52的。
你也可以使用fastclick库,它将只在必要的地方"修复"点击延迟
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何确定javascript已经完成了某些操作.ios上的
- 触摸移动时切换到新元素
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 从JavaScript访问struts操作中的属性
- fluxxor向一个flux实例添加一组以上的操作
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 操作放置在画布上的元素之间的连接
- 使用“+="操作人员
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- Jquery未定义函数正在停止其他操作
- 如何操作iframe之外的元素
- javascript对象操作:根据指定条件选择属性
- 如何在画布上绘制(使用鼠标/触摸)、保存绘制的对象、存储、加载和操作
- 已弃用移动应用程序的触摸操作
- 通过触摸操作图像:IOS
- 如果用户取消了对移动设备的触摸,则触发操作
- 延迟触摸端的操作