webview长按事件js监听
博客专区 > caiyezi 的博客 > 博客详情
webview长按事件js监听
caiyezi 发表于2年前
webview长按事件js监听
  • 发表于 2年前
  • 阅读 120
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

做app开发时,用到了webview,需要监听webview的长按事件,使用原生的js处理监听如下:

var timeOutEvent = 0; //定时器 //开始按 
 function gtouchstart() { timeOutEvent = setTimeout("longPress()", 500); //这里设置定时器,定义长按500毫秒触发长按事件,时间可以自己改,个人感觉500毫秒非常合适 
        return false; }; //手释放,如果在500毫秒内就释放,则取消长按事件,此时可以执行onclick应该执行的事件 
 function gtouchend() { clearTimeout(timeOutEvent); //清除定时器 
        if (timeOutEvent != 0) { //这里写要执行的内容(尤如onclick事件) //alert("你这是点击,不是长按");
 } return false; }; //如果手指有移动,则取消所有事件,此时说明用户只是要移动而不是长按 
 function gtouchmove() { clearTimeout(timeOutEvent); //清除定时器 
        timeOutEvent = 0; }; //真正长按后应该执行的内容 
 function longPress() { timeOutEvent = 0; //执行长按要执行的内容,如弹出菜单 //alert("长按事件触发");
        do_Page.fire("showTool",{"index":index,"url":images[index].source}); }

这里设置500ms点击为长按处理,主要用到了3个事件:

ontouchstart、ontouchmove、ontouchend,主要思路:

在ontouchstart事件中启动一个定时器,定时器间隔时间为500ms,即500ms后自动执行longPress逻辑,并清除定时器事件,ontouchend表示tap弹起,这时直接清除定时器,ontouchmove表示手指滑动,直接清除定时器即可,这样就简单实现了长按事件监听处理。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 108
码字总数 0
×
caiyezi
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: