Ger*_*ite 21 android webpage barcode
我整个上午一直在研究将android条形码扫描仪应用程序集成到网页中,但还没有找到我需要知道的内容.我希望有一个网页,用户可以使用Android条形码扫描仪填写文本字段.因此,用户将在网页上,并在文本字段内单击或单击文本字段旁边的按钮,该按钮将启动Android条形码扫描程序.然后他们将扫描条形码并填写文本字段.
我找到了有关如何执行此操作的解决方案,然后转到其他页面,但用户必须保持在同一页面上非常重要.我已经看过zxing项目,并认为可以使用,但我不确定它是否允许页面保持不变.
我很确定这是可能的,并且想知道是否有人可以给我一个关于如何做到这一点的高级概述.我认为可以通过点击按钮提交的ajax请求来完成.ajax请求将被发送到我的服务器,服务器会向Android设备发送一些内容,启动扫描程序并返回数据,然后在ajax响应中返回.有没有办法切断服务器,只是让Android浏览器启动条码扫描器?感谢您的时间,我感谢您的任何讨论.
Mic*_*per 22
ZXing(斑马线)提供了通过网页通过按钮点击事件,锚标记或其他可以在移动设备上调用URL的操作来启动条形码扫描器的功能.
当条形码扫描仪应用程序安装在Android设备上时,URL调用:
zxing://scan/?ret=http://foo.com/products/{CODE}/description&SCAN_FORMATS=UPC_A,EAN_13
Run Code Online (Sandbox Code Playgroud)
将调出设备条形码阅读器,用户扫描代码,并通过zxing URL中提供的回调URL参数返回代码.
你可以在这里查看一个例子(适用于android):http://zxing.appspot.com/scan
小智 6
你可以试试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>
Run Code Online (Sandbox Code Playgroud)
供参考:阅读链接
使用 javascript 接口和 loadurl(javascript...) 您可以从 Android 与您的网页进行通信
public void loadScript(String script){
webview.loadUrl("javascript:(function() { " + script + "})()");
}
private class JavaScriptInterface {
public void startQRScan() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
google 上有很多例子。