扫码枪扫码触发接口传递参数(实例)

时间:2024-02-19 19:49:50

前两天因为业务需要,研究了一下扫码枪,得出了两个笨方法,用于扫码后调用接口传输数据

 

方法一

1.先生成一个二维码,改二维码里的数据就是你要请求需要向接口所传递的数据

2.然后写一个html页面,里面就放一个input框就好了,这个input框就是用来接收你二维码里面的数据的

3.写一段js,让用户打开页面后input自动永久聚焦

4.再写一段js,检测input里面是不是有输入内容,如果有,那么则拿到里面的内容触发ajax把内容提交过去,提交成功后清除掉input里面的value值即可

 

附上代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<script type="text/javascript" src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
    <input type="text" id="d1" value="" style="opacity:0;">
<script type="text/javascript">
    var a = [];
    var timeout;
$("input").keyup(function(){
    a.push($(this).val());
    clearTimeout(timeout);
      timeout = setTimeout(function(){
          var b = a.pop();
          
        $.ajax({
           url:b,
           type:"post",
           data:{},
           jsonType:"json",
           success:function(a){
              $(\'input\').val("");
              console.log(a);
           },
           error:function(e){
              alert("错误");
              $(\'input\').val("");
            }
        });
  },1000);
});

//input自动永久聚焦
$(document).ready(function(){
$("input").focus();
})
$(function () {
  $(\'#d1\').blur(function () {
  var that = this; //或者用闭包 
  setTimeout(function () { $(that).focus(); },100); }); });
  $(\'#d1\').blur(function() {$(this).focus();
});

</script>
</body>
</html>

 

方法2:

因为扫码枪在扫码的时候会自动触发submit,那么我们可以利用这个点,去实现form表单提交

如:

     <form method="post" action="https://www.cnblogs.com/junyi-bk"> 
            <input type="text" id="d1" value="">
            <input type="submit">
     </form>

该方法比方法一要简单很多,因为我们是利用扫码枪自动触发submit的特效来提交,所以也不用写ajax,但是缺点就是,传递过去的数据只能是一条。