Хочу сделать систему управления запасами с флаттером. Я хочу отсканировать штрих-код на моем телефоне, и, если он совпадает со штрих-кодом моего продукта (который был в значении остальных API и JSON), он возвращает мне «Да, здесь ваш продукт и возвращает название этого продукта, цену и т. Д.
Я могу добраться до остальных API с помощью этого кода:
int _stokSayisi;
int get stokSayisi => _stokSayisi;
List<Stok> _stokListesi;
List<Stok> get stokListesi => _stokListesi;
Future<List<Stok>> getStok() async {
final String token = token_manager.token;
return await http.get("http://192.168.1.29:7070/api/v2/Items", headers: {
HttpHeaders.authorizationHeader: "Bearer $token"
}).then((response) {
var dataList = json.decode(response.body)["Data"] as List;
print("Stok Sayısı -> "+ dataList.length.toString());
_stokSayisi = dataList.length;
_stokListesi = dataList.map<Stok>((json) => Stok.fromJson(json)).toList();
});
}
и я могу получить номер штрих-кода продукта следующим образом (getStok.dart):
Widget createListView(BuildContext context, AsyncSnapshot snapshot) {
return new ListView.builder(
itemCount: get_stok.stokSayisi,
itemBuilder: (BuildContext context, int index) {
return new Column(
children: <Widget>[
new ListTile(
title:
new Text(get_stok.stokListesi[index].stokTemelBilgi.stokAdi),
subtitle:
new Text(get_stok.stokListesi[index].stokTemelBilgi.barkodNum),//Here is my barcodeNumber value.But ı cannot understand how to validate this value with scanned code value//.
)
],
);
},
);
}
Вот мой BarCodeScanner.dart: (я хочу проверить значение _reader с моим классом getStok.dart, который я объявляю в скобках комментария.)
class _BarcodeScanState extends State<BarcodeScan> {
String _reader = '';
Permission permission = Permission.Camera;
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
appBar: new AppBar(
title: new Text("Stok Barkod Okuma"),
backgroundColor: Colors.redAccent,
),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
/*new Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0),
),*/
new RaisedButton(
//splashColor: Colors.pinkAccent,
color: Colors.black,
child: new Text(
"BARKOD OKUT",
style: new TextStyle(fontSize: 30.0, color: Colors.white),
),
onPressed: scan,
),
new Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0),
),
new Text('$_reader',
softWrap: true,
style: new TextStyle(fontSize: 30.0, color: Colors.blue))
],
))),
);
}
requestPermission() async {
void result = await SimplePermissions.requestPermission(permission);
}
scan() async {
try {
String reader = await BarcodeScanner.scan();
if (!mounted) {
return;
}
setState(() {
_reader = reader;
});
} on PlatformException catch (e) {
if (e.code == BarcodeScanner.CameraAccessDenied) {
requestPermission();
} else {
setState(() {
_reader = "unknown error $e";
});
}
} on FormatException {
setState(() {
_reader = "User exit without scanning";
});
}
}
}