Are*_*ons 9 barcode ios swift ios16 gs1-qr-code
我们正在使用Vision库来扫描 GS1 条形码。
该库无法识别 iOS 16 版本中的特殊字符“GS”。
"GS" --> 组分隔符 (ASCII 29)
我们在旧版本上没有遇到这样的问题。例如 iOS 15.6 或更低版本。我在下面上传了 GS1 条形码示例图像。
扫描后我们应该得到:{GS}10BF50001A{GS}21003032{GS}1122012722VD020
我们在 iOS 16 上得到的是:10BF50001A210030321122012722VD020
我还发布了有关如何使用该库的示例代码。我们没有更改代码,该错误仅出现在 iOS 16 版本上。我们想知道是否引入了错误。
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
guard let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {
return
}
let imageRequestHandler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, orientation: .right)
do {
try imageRequestHandler.perform([detectBarcodeRequest])
} catch {
logger.error(tag: TAG, "barcode error: \(error)")
}
}
private lazy var detectBarcodeRequest = VNDetectBarcodesRequest { [weak self] request, error in
guard error == nil else {
self?.logger.error(tag: self?.TAG, "barcode error: \(error)")
return
}
self?.processVNRequest(request)
}
private func processVNRequest(_ request: VNRequest) {
guard let barcodes = request.results else {
return
}
for barcode in barcodes {
guard let potentialBarcode = barcode as? VNBarcodeObservation else {
return
}
guard let payload = potentialBarcode.payloadStringValue else {
return
}
prepareToNotifyDetectionEvent(payload)
}
}
Run Code Online (Sandbox Code Playgroud)
先感谢您。
我们遇到了同样的问题,将测试设备更新到iOS 16.0.2后,我们的应用程序停止正确读取 2D 条形码(QR 码和数据矩阵)。在 iOS 15 上,检测编码数据中的 FNC1 字符没有问题,该字符用于读取不同的 GS1 元素。更新后,应用程序无法正确检测FNC1字符等问题,导致工作流程中断。
今天,我们安装了iOS 16.1 beta 3,我确认该应用程序按预期正常工作,并且扫描仪能够成功检测到 FNC1 字符。一切都恢复正常了。
您可以在 Apple Beta 软件计划中注册您的设备以获得最新的公开测试版,例如我们测试过的 iOS 16.1 beta 3。
报名链接:
https://beta.apple.com/sp/betaprogram/enroll#ios
| 归档时间: |
|
| 查看次数: |
755 次 |
| 最近记录: |