Committed by
GitHub
Merge pull request #253 from JakubPatrik/feature/raw_bytes
expose the binaryData from the jsQR library
Showing
3 changed files
with
17 additions
and
3 deletions
| @@ -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 | } |
-
Please register or login to post a comment