ionic4使用掃碼插件QRscanner無法識別一維碼條碼解決方法

        最近在開發PDA項目,使用angular7+ionic4+cordova項目,需要支持掃碼一維碼(條碼)和二維碼,於是我選擇QR scanner掃碼插件。令人頭大的問題出現了,qr scanner能識別出二維碼,但是一維碼無法識別。。。。。。後來發現配置一下編碼格式可以解決這個問題。

1.QR Scanner版本  3.0.1

找到文件  plugins\cordova-plugin-qrscanner\src\android\QRScanner.java

找到文件裏  setupCamera 方法,添加以下代碼,如圖:
//Configure the decoder
ArrayList<BarcodeFormat> formatList = new ArrayList<BarcodeFormat>();
formatList.add(BarcodeFormat.QR_CODE);
formatList.add(BarcodeFormat.UPC_A);   // UPC標準碼(通用商品)
formatList.add(BarcodeFormat.UPC_E);   // UPC縮短碼(商品短碼)
formatList.add(BarcodeFormat.EAN_13);
formatList.add(BarcodeFormat.EAN_8);
formatList.add(BarcodeFormat.CODE_39);
formatList.add(BarcodeFormat.CODE_93);
formatList.add(BarcodeFormat.CODE_128);
formatList.add(BarcodeFormat.ITF);
formatList.add(BarcodeFormat.DATA_MATRIX);

配置完成之後重新構建項目,打包測試,完成一維碼識別功能。

2.番外(●'◡'●)

        項目使用的時Lodop打印工具生成的一維碼,Lodpop條碼ADD_PRINT_BARCODE(Top, Left,Width, Height, CodeType, CodeValue)配置,CodeType (條碼類型)目前支持:

128A,128B,128C,EAN8,EAN13,EAN128A,EAN128B,EAN128C,Code39,
39Extended,2_5interleaved,2_5industrial,2_5matrix,UPC_A,UPC_E0,UPC_E1,UPCsupp2,UPCsupp5,Code93,93Extended,MSI,PostNet,Codaba,QRCode

項目中選用了128A,生成條碼後,條碼過小會影響識別的準確度,打印出來之後能正確識別,當時以爲是個bug,調試了很久。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章