写在前面
项目中有这样的需求,在android端嵌入的html5应用中,需要扫描二维码,而一般的浏览器是不允许你调用摄像头的。最后时限方式是由app的webview进行扫描,将扫描结果返回,也就是js的回调方法中。
例子说明
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <meta charset="utf-8" /> <script> //扫描二维码回调函数 function erCodeCallBack(msgStr) { show_log(msgStr); $.ajax({ url: 'Ashx/srcode.ashx', type: "post", data: { site: msgStr, action: 'add' }, success: function (data) { console.log(data); if (data._code == 200) { window.location.reload(); }; }, error: function (msg) { alert(msg); } }); }; </script> </head> <body> <input type="button" onclick="javascript: window.android.getErCode()" name="name" value="扫描二维码" /> </body> </html>
erCodeCallBack为安卓端的扫描二维码的回调函数,扫描成功后调用该函数,并且发送请求。
关于js和android方法调用可以参考这个http://www.cnblogs.com/greatverve/archive/2012/01/18/android-javascript.html