我正在使用离子条码扫描器 - https://ionicframework.com/docs/native/barcode-scanner/
我需要做的是运行扫描程序,查找我将创建的某个qr代码,如果找到该qr代码,则将时间戳添加到列表/数组。
我想创建一个简单字符串的qr代码,然后创建一个if语句,检查扫描结果是否与字符串匹配,但是我收到错误说 -
Operator '==' cannot be applied to types 'BarcodeScanResult' and 'String'
所以我认为这个想法不会奏效。什么是有效的解决方案?
答案 0 :(得分:1)
正如错误所述,您正在尝试比较两种不同的类型,访问 text
的 barcodeData
属性,需要做的就像此
this.barcodeScanner.scan().then((barcodeData) => {
let inputString = "testData";
if( barcodeData.text === inputString){
}
}, (err) => {
});
}
答案 1 :(得分:0)
如前所述,您正在寻找 text 属性, barcodeData 对象如下所示:
{
text: "The code that was scanned",
format: "Code format",
cancelled: true
}
我可能会超出范围,但可能是你正在寻找的这样的东西?,这会检查扫描的条形码是否被识别,如果是这样,条形码和Unix时间戳将被添加到数组中!
let timeStamps = new Array<any>();
let ts = new Date().valueOf();
let qrCodes: Array<string> = ["5030917215094", "5051892205498"];
let scope = this;
scope.barcodeScanner.scan().then((barcodeData) => {
let barCode = barcodeData.text;
if (scope.qrCodes.indexOf(barCode)) {
scope.timeStamps.push(
{
"timestamp": new Date().valueOf(),
"barCode": barCode
}
);
}
}, (err) => {
// An error occurred
});