Android条码扫描器与网页集成

我一直在研究整个Android条码扫描器应用程序整合到一个网页,但还没有find我需要知道的。 我想有一个网页,用户可以通过使用android条码扫描器来填写文本字段。 所以用户会在网页上,或者点击文本框内,或者点击文本框旁边的button来启动android条码扫描器。 然后,他们将扫描条形码,文本字段将被填写。

我已经find了解决办法,如何做到这一点,然后去不同的页面,但重要的是,用户停留在同一页面上。 我已经看到了zxing项目,并认为可以使用,但我不确定是否允许页面保持不变。

我很确定这是可能的,并想知道是否有人可以给我一个高层次的概述,他们将如何做到这一点。 我想这可能能够完成一个ajax请求,通过点击button提交。 ajax请求将被发送到我的服务器,服务器会发送一些东西到Android设备,将启动扫描仪,并返回数据,然后发送回ajax响应。 有没有办法切断服务器,只是有Android浏览器启动条码扫描器? 谢谢你的时间,我感谢你的任何讨论。

Solutions Collecting From Web of "Android条码扫描器与网页集成"

使用JavaScript接口和loadurl(javascript …),您可以与Android的网页进行通信

public void loadScript(String script){ webview.loadUrl("javascript:(function() { " + script + "})()"); } private class JavaScriptInterface { public void startQRScan() { ... } } 

谷歌有很多例子。

ZXing (斑马线)提供了通过button点击事件,锚点标记或其他可以在移动设备上调用URL的动作,通过网页启动条形码扫描器的function。

当条码扫描器应用程序安装在Android设备上时,会调用以下URL:

 zxing://scan/?ret=http://foo.com/products/{CODE}/description&SCAN_FORMATS=UPC_A,EAN_13 

将调出设备条码阅读器,用户扫描代码,并通过zxing URL中提供的callbackURL参数返回代码。

你可以在这里查看一个例子(在android上工作):http: //zxing.appspot.com/scan

你可以试试Android的这个:

您可以使用Zxing库进行网页条码扫描

  <!DOCTYPE html> <script type="text/javascript"> //This entire block of script should be in a separate file, and included in each doc in which you want scanner capabilities function zxinglistener(e){ localStorage["zxingbarcode"] = ""; if(e.url.split("\#")[0] == window.location.href){ window.focus(); processBarcode(decodeURIComponent(e.newValue)); } window.removeEventListener("storage", zxinglistener, false); } if(window.location.hash != ""){ localStorage["zxingbarcode"] = window.location.hash.substr(1); self.close(); window.location.href="about:blank";//In case self.close is disabled }else{ window.addEventListener("hashchange", function(e){ window.removeEventListener("storage", zxinglistener, false); var hash = window.location.hash.substr(1); if (hash != "") { window.location.hash = ""; processBarcode(decodeURIComponent(hash)); } }, false); } function getScan(){ var href = window.location.href.split("\#")[0]; window.addEventListener("storage", zxinglistener, false); zxingWindow = window.open("zxing://scan/?ret=" + encodeURIComponent(href + "#{CODE}"),'_self'); } </script> <html> <head> <script type="text/javascript"> function processBarcode(b){ var d = document.createElement("div"); d.innerHTML = b; document.body.appendChild(d); } </script> </head> <body> <button onclick="getScan()">get Scan</button> </body> </html> 

供参考: 阅读链接

你可以使用这个android应用程序。

https://play.google.com/store/apps/details?id=com.tecit.android.barcodekbd.full&hl=en

这是一个只是一个普通的键盘与一个额外的漂亮的小button,随时随地打开条形码扫描仪。 通过条形码扫描器读取的string被填充到通常键盘将要input的文本字段中。

它非常容易使用。