2021-09-10 16:33:52 +06:30
|
|
|
import 'package:barcode_scan2/platform_wrapper.dart';
|
2020-10-11 02:17:23 +06:30
|
|
|
|
2021-09-10 16:33:52 +06:30
|
|
|
Future<String?> scanBarcode() async {
|
2020-10-11 02:17:23 +06:30
|
|
|
try {
|
2021-09-10 16:33:52 +06:30
|
|
|
var scanResult = await BarcodeScanner.scan();
|
|
|
|
|
String barcode = scanResult.rawContent;
|
2020-10-11 02:17:23 +06:30
|
|
|
|
|
|
|
|
String gs = String.fromCharCode(29);
|
|
|
|
|
if (barcode.contains(gs)) {
|
|
|
|
|
var codes = barcode.split(gs);
|
|
|
|
|
barcode = codes.length >= 2 ? codes[1] : barcode;
|
2020-11-09 05:53:25 +06:30
|
|
|
} else if (barcode.startsWith("96")) {
|
|
|
|
|
if (barcode.length == 34) {
|
|
|
|
|
int start = barcode.length - 12;
|
|
|
|
|
barcode = barcode.substring(start);
|
|
|
|
|
} else if (barcode.length == 22) {
|
|
|
|
|
int start = barcode.length - 15;
|
|
|
|
|
barcode = barcode.substring(start);
|
|
|
|
|
}
|
2020-10-11 02:17:23 +06:30
|
|
|
}
|
|
|
|
|
return barcode;
|
|
|
|
|
} catch (e) {
|
|
|
|
|
print('error: $e');
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|