diff --git a/.changes/barcode-scanner-ios-crash.md b/.changes/barcode-scanner-ios-crash.md new file mode 100644 index 000000000..fbc70f2f9 --- /dev/null +++ b/.changes/barcode-scanner-ios-crash.md @@ -0,0 +1,6 @@ +--- +barcode-scanner: patch +barcode-scanner-js: patch +--- + +On iOS, fixed an application crash happening when the scanner was started when user denied permission before. diff --git a/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift b/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift index 3d5db262a..4ad399daf 100644 --- a/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift +++ b/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift @@ -261,6 +261,11 @@ class BarcodeScannerPlugin: Plugin, AVCaptureMetadataOutputObjectsDelegate { } private func runScanner(_ invoke: Invoke, args: ScanOptions) { + if getPermissionState() != "granted" { + invoke.reject("Camera permission denied or not yet requested") + return + } + scanFormats = [AVMetadataObject.ObjectType]() (args.formats ?? []).forEach { format in