Julian Steenbakker
Committed by GitHub

Merge pull request #253 from JakubPatrik/feature/raw_bytes

expose the binaryData from the jsQR library
@@ -200,7 +200,11 @@ class MobileScannerWebPlugin { @@ -200,7 +200,11 @@ class MobileScannerWebPlugin {
200 200
201 final code = jsQR(imgData.data, canvas.width, canvas.height); 201 final code = jsQR(imgData.data, canvas.width, canvas.height);
202 if (code != null) { 202 if (code != null) {
203 - controller.add({'name': 'barcodeWeb', 'data': code.data}); 203 + controller.add({
  204 + 'name': 'barcodeWeb',
  205 + 'data': code.data,
  206 + 'binaryData': code.binaryData,
  207 + });
204 } 208 }
205 } 209 }
206 } 210 }
@@ -93,7 +93,7 @@ class MobileScannerController { @@ -93,7 +93,7 @@ class MobileScannerController {
93 void handleEvent(Map event) { 93 void handleEvent(Map event) {
94 final name = event['name']; 94 final name = event['name'];
95 final data = event['data']; 95 final data = event['data'];
96 - 96 + final binaryData = event['binaryData'];
97 switch (name) { 97 switch (name) {
98 case 'torchState': 98 case 'torchState':
99 final state = TorchState.values[data as int? ?? 0]; 99 final state = TorchState.values[data as int? ?? 0];
@@ -112,7 +112,13 @@ class MobileScannerController { @@ -112,7 +112,13 @@ class MobileScannerController {
112 ); 112 );
113 break; 113 break;
114 case 'barcodeWeb': 114 case 'barcodeWeb':
115 - barcodesController.add(Barcode(rawValue: data as String?)); 115 + final bytes = (binaryData as List).cast<int>();
  116 + barcodesController.add(
  117 + Barcode(
  118 + rawValue: data as String?,
  119 + rawBytes: Uint8List.fromList(bytes),
  120 + ),
  121 + );
116 break; 122 break;
117 default: 123 default:
118 throw UnimplementedError(); 124 throw UnimplementedError();
1 @JS() 1 @JS()
2 library jsqr; 2 library jsqr;
3 3
  4 +import 'dart:typed_data';
  5 +
4 import 'package:js/js.dart'; 6 import 'package:js/js.dart';
5 7
6 @JS('jsQR') 8 @JS('jsQR')
@@ -9,4 +11,6 @@ external Code? jsQR(dynamic data, int? width, int? height); @@ -9,4 +11,6 @@ external Code? jsQR(dynamic data, int? width, int? height);
9 @JS() 11 @JS()
10 class Code { 12 class Code {
11 external String get data; 13 external String get data;
  14 +
  15 + external Uint8ClampedList get binaryData;
12 } 16 }