首页 > 解决方案 > 一次扫描多个条形码,当用户完成扫描并存储结果时,它应该返回屏幕

问题描述

我正在开发一个带有 ionic 3 并针对 android 和 iOS 设备的移动条形码扫描仪应用程序,但现在我被困在这里。在我必须扫描条形码并显示它的应用程序中。最初的要求仅适用于一种产品,但现在根据新要求,该应用程序应允许用户一次扫描多个条形码,并且在用户完成扫描后应返回屏幕并将结果存储在现有的分区(数组)。我已设法使用以下代码在页面中显示一个产品条形码扫描结果:-

scan()  
 {   
   this.options = {
   prompt : "Scan your barcode"
  }
   this.barcodeScanner.scan(this.options).then((barcodeData) => {   
   console.log(barcodeData);     
   this.scanData = barcodeData.text;   
   },(err) => {    
     console.log("Error occurred : " + err);    
  });    
  } 

你能帮我吗....如何一次扫描多个条形码

标签: angulartypescriptionic-framework

解决方案


我会让扫描返回一个带有结果的承诺并将其存储在一个数组中,然后循环遍历数组以呈现结果。

像这样的东西:

scan(){
  return new Promise((resolve, reject)=>{
    this.options = {
      prompt : "Scan your barcode"
    }
    this.barcodeScanner.scan(this.options).then((barcodeData) => {   
      resolve(barcodeData.text);   
    },(err) => {    
      reject(err);    
    });    
  })
}

像这样使用:

const scans=[]

{
   scan().then((scanData)=>{
     scans.push(scanData);
     renderScanList(scans) //you can figure this part out
   })
   .catch(err=>{/*display error*/})
}

推荐阅读