#flutter
#flutter
Вопрос:
У меня есть решение flutter, которое интерпретирует QR-код с помощью сканирующего устройства. Я использую RawKeyboardListener для чтения отсканированного QR-кода, который затем преобразует его в переменную.
Значение QR является объектом {something: somethingelse} , но при чтении RawKeyboardListener он считывает {} как [], и в результате объект становится недействительным.
String runtime = event.runtimeType.toString();
if (event.data.logicalKey != LogicalKeyboardKey.enter) {
setState(() {
scannedItem = runtime == 'RawKeyUpEvent' ? event.data.keyLabel : '';
});
} else if (scannedItem != '') {
setState(() {
var data = json.decode(scannedItem);
});
}
Ответ №1:
Я поиграл с решением и в итоге исправил его, хотя я чувствую, что есть лучший способ решить эту проблему
if (event.data.isShiftPressed) {
switch (event.data.logicalKey.debugName) {
case 'Bracket Left':
keyLabel = '{';
break;
case 'Bracket Right':
keyLabel = '}';
break;
case 'Quote':
keyLabel = '"';
break;
case 'Semicolon':
keyLabel = ':';
break;
default:
keyLabel = keyLabel.toUpperCase();
break;
}
}