问题描述
使用 Quagga.js,我们正在网络视图中进行条码识别。 它在移动网络上运行良好,但它发生在 APP 上。 问题在于以下两点。
- Quagga 提供的目标 div 不包含相机,而是切换到全屏。 Problem 1 Image
- 识别条码后,摄像头保持黑屏状态,而不是关闭状态。 Problem 1 Image
已从 info.plist 中解压权限。
- 隐私 - 相机使用说明
- 隐私 - 照片库添加使用说明
下面是我的代码。
openItem.addEventListener("click",() => {
document.querySelector(".barcode_Camera").style.bottom = "0px";
/* Barcode Scan Script */
Quagga.init({
inputStream: {
type : "LiveStream",target: document.querySelector('#camera_Area'),// Or '#yourElement' (optional)
constraints: {
width: {min: 1280},height: {min: 480},facingMode: "environment",aspectRatio: {min: 1,max: 2}
}
},locator: {
patchSize: "small",halfSample: true
},numOfWorkers: 4,frequency: 10,decoder: {
readers : [{
format: "code_93_reader",config: {}
}],debug: {
drawBoundingBox: false,showFrequency: false,drawScanline: false,showPattern: false
},multiple: false
},},function (err) {
if (err) {
console.log(err);
return
}
console.log("Initialization finished. Ready to start");
Quagga.start();
});
}); /*Close*/
Quagga.onProcessed(function (result) {
let drawingCtx = Quagga.canvas.ctx.overlay,drawingCanvas = Quagga.canvas.dom.overlay;
if (result) {
if (result.Boxes) {
drawingCtx.clearRect(0,parseInt(drawingCanvas.getAttribute("width")),parseInt(drawingCanvas.getAttribute("height")));
result.Boxes.filter(function (Box) {
return Box !== result.Box;
}).forEach(function (Box) {
Quagga.ImageDebug.drawPath(Box,{x: 0,y: 1},drawingCtx,{color: "#88d147",linewidth: 2});
});
}
}
});
Quagga.onDetected(function (data) {
document.querySelector('#barcode').value = data.codeResult.code;
let closeTarget = closeItem.closest(".barcode_Camera");
document.querySelector(".barcode_Camera").style.bottom = "-100%";
Quagga.stop();
});
如果我需要在 info.plist 中做任何其他事情或如何解决问题,我想寻求您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)