识别长按

最近微信新增了一个功能:长按识别验证码。

原理是这样的:检测长按事件---触发-->截取图片中的验证码

关于长按,我们可以这么处理:

1,点击开始时(onMouseDown||onTouchStart)触发时一个timer,并设定时间

2,点击结束时(onMouseUp || onTouchEnd) 清除这个定时任务,若开始于结束中间的时间不满足timer的时间,那么实际上就不会触发事件,从而达到了长按的效果

如代码

 1 var canvas = document.getElementById('myCanvas');
 2 var timer = null;
 3 
 4 ​canvas.onmousedown = function(){
 5   timer = setTimeout( doStuff, 2000 );
 6 };
 7 
 8 canvas.onmouseup = function(){
 9   clearTimeout( timer );
10 };
11 
12 function doStuff() {
13   alert('hello, you just pressed the mousebutton for two seconds.')
14 }

Demo

接着利用ZXing或是ZBar,判断图片中是否包含二维码

 

posted @ 2015-05-10 18:02  青苔1943  阅读(423)  评论(0编辑  收藏  举报