前兩天因為業務需要,研究了一下掃碼槍,得出了兩個笨方法,用於掃碼后調用接口傳輸數據
方法一:
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,但是缺點就是,傳遞過去的數據只能是一條。