Navaron Bracke

update web error code handling to handle unsupported better

... ... @@ -17,6 +17,9 @@ class ScannerErrorWidget extends StatelessWidget {
case MobileScannerErrorCode.permissionDenied:
errorMessage = 'Permission denied';
break;
case MobileScannerErrorCode.unsupported:
errorMessage = 'Scanning is unsupported on this device';
break;
default:
errorMessage = 'Generic Error';
break;
... ...
... ... @@ -11,4 +11,7 @@ enum MobileScannerErrorCode {
/// The permission to use the camera was denied.
permissionDenied,
/// Scanning is unsupported on the current device.
unsupported,
}
... ...
... ... @@ -207,9 +207,21 @@ class MobileScannerController {
} on PlatformException catch (error) {
MobileScannerErrorCode errorCode = MobileScannerErrorCode.genericError;
if (error.code == "MobileScannerWeb") {
final String? errorMessage = error.message;
if (kIsWeb) {
if (errorMessage == null) {
errorCode = MobileScannerErrorCode.genericError;
} else if (errorMessage.contains('NotFoundError') ||
errorMessage.contains('NotSupportedError')) {
errorCode = MobileScannerErrorCode.unsupported;
} else if (errorMessage.contains('NotAllowedError')) {
errorCode = MobileScannerErrorCode.permissionDenied;
} else {
errorCode = MobileScannerErrorCode.genericError;
}
}
isStarting = false;
throw MobileScannerException(
... ...