diff --git a/src/ios/CDVBarcodeScanner.mm b/src/ios/CDVBarcodeScanner.mm index 12827cca..80030e5b 100644 --- a/src/ios/CDVBarcodeScanner.mm +++ b/src/ios/CDVBarcodeScanner.mm @@ -138,6 +138,15 @@ - (NSString*)isScanNotPossible { return result; } +-(BOOL)notHasPermission +{ + AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; + return (authStatus == AVAuthorizationStatusDenied || + authStatus == AVAuthorizationStatusRestricted); +} + + + //-------------------------------------------------------------------------- - (void)scan:(CDVInvokedUrlCommand*)command { CDVbcsProcessor* processor; @@ -160,6 +169,10 @@ - (void)scan:(CDVInvokedUrlCommand*)command { if (capabilityError) { [self returnError:capabilityError callback:callback]; return; + } else if ([self notHasPermission]) { + NSString * error = NSLocalizedString(@"Access to the camera has been prohibited; please enable it in the Settings app to continue.",nil); + [self returnError:error callback:callback]; + return; } processor = [[CDVbcsProcessor alloc]