如何在成功的条形码扫描中添加到阵列?

时间:2018-01-14 19:26:37

标签: angular cordova typescript ionic-framework

我正在使用离子条码扫描器 - https://ionicframework.com/docs/native/barcode-scanner/

我需要做的是运行扫描程序,查找我将创建的某个qr代码,如果找到该qr代码,则将时间戳添加到列表/数组。

我想创建一个简单字符串的qr代码,然后创建一个if语句,检查扫描结果是否与字符串匹配,但是我收到错误说 -

Operator '==' cannot be applied to types 'BarcodeScanResult' and 'String'

所以我认为这个想法不会奏效。什么是有效的解决方案?

2 个答案:

答案 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
});