Skip to content

Commit 1f98d84

Browse files
committed
Fix leading zero added to UPC-A codes
AVFoundation adds a leading zero to UPC-A codes. We don't want an auto added zero https://stackoverflow.com/questions/22767584/ios7-barcode-scanner-api-adds-a-zero-to-upca-barcode-format https://developer.apple.com/library/content/technotes/tn2325/_index.html
1 parent 14cc184 commit 1f98d84

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

Sources/BarcodeScannerController.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,13 +419,18 @@ extension BarcodeScannerController: AVCaptureMetadataOutputObjectsDelegate {
419419

420420
guard
421421
let metadataObj = metadataObjects[0] as? AVMetadataMachineReadableCodeObject,
422-
let code = metadataObj.stringValue,
422+
var code = metadataObj.stringValue,
423423
metadata.contains(metadataObj.type)
424424
else { return }
425425

426426
if isOneTimeSearch {
427427
locked = true
428428
}
429+
// See: https://stackoverflow.com/questions/22767584/ios7-barcode-scanner-api-adds-a-zero-to-upca-barcode-format
430+
if metadataObj.type == AVMetadataObjectTypeEAN13Code && code.hasPrefix("0"){
431+
let index = code.index(code.startIndex, offsetBy: 1)
432+
code = code.substring(from: index)
433+
}
429434

430435
animateFlash(whenProcessing: isOneTimeSearch)
431436
codeDelegate?.barcodeScanner(self, didCaptureCode: code, type: metadataObj.type)

0 commit comments

Comments
 (0)