Bläddra i källkod

Fix getting camera permissions

flutter-beta
Guy Kogus 5 år sedan
förälder
incheckning
1dbe37c775
2 ändrade filer med 9 tillägg och 9 borttagningar
  1. +7
    -3
      ios/Classes/QRView.swift
  2. +2
    -6
      lib/src/qr_code_scanner.dart

+ 7
- 3
ios/Classes/QRView.swift Visa fil

@@ -125,7 +125,11 @@ public class QRView:NSObject,FlutterPlatformView {
arguments.forEach { arg in
allowedBarcodeTypes.append( QRCodeTypes[arg]!)
}
MTBBarcodeScanner.requestCameraPermission(success: { permissionGranted in
MTBBarcodeScanner.requestCameraPermission(success: { [weak self] permissionGranted in
guard let self = self else { return }

self.channel.invokeMethod("onPermissionSet", arguments: permissionGranted)

if permissionGranted {
do {
try self.scanner?.startScanning(with: self.cameraFacing, resultBlock: { [weak self] codes in
@@ -169,8 +173,8 @@ public class QRView:NSObject,FlutterPlatformView {

})
} catch {
let error = FlutterError(code: "unknown-error", message: "Unable to start scanning", details: nil)
return result(error)
let scanError = FlutterError(code: "unknown-error", message: "Unable to start scanning", details: error)
result(scanError)
}
} else {
let error = FlutterError(code: "cameraPermission", message: "Permission denied to access the camera", details: nil)


+ 2
- 6
lib/src/qr_code_scanner.dart Visa fil

@@ -199,13 +199,9 @@ class QRViewController {
case 'onPermissionSet':
await getSystemFeatures(); // if we have no permission all features will not be avaible
if (call.arguments != null) {
if (call.arguments as bool) {
_hasPermissions = true;
} else {
_hasPermissions = false;
}
_hasPermissions = call.arguments as bool;
if (onPermissionSet != null) {
onPermissionSet(this, call.arguments as bool);
onPermissionSet(this, _hasPermissions);
}
}
break;


Laddar…
Avbryt
Spara