Showing
3 changed files
with
16 additions
and
2 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 | } |
| 1 | import 'dart:async'; | 1 | import 'dart:async'; |
| 2 | import 'dart:io'; | 2 | import 'dart:io'; |
| 3 | +import 'dart:typed_data'; | ||
| 3 | 4 | ||
| 4 | import 'package:flutter/cupertino.dart'; | 5 | import 'package:flutter/cupertino.dart'; |
| 5 | import 'package:flutter/foundation.dart'; | 6 | import 'package:flutter/foundation.dart'; |
| @@ -89,6 +90,7 @@ class MobileScannerController { | @@ -89,6 +90,7 @@ class MobileScannerController { | ||
| 89 | void handleEvent(Map event) { | 90 | void handleEvent(Map event) { |
| 90 | final name = event['name']; | 91 | final name = event['name']; |
| 91 | final data = event['data']; | 92 | final data = event['data']; |
| 93 | + final binaryData = event['binaryData']; | ||
| 92 | switch (name) { | 94 | switch (name) { |
| 93 | case 'torchState': | 95 | case 'torchState': |
| 94 | final state = TorchState.values[data as int? ?? 0]; | 96 | final state = TorchState.values[data as int? ?? 0]; |
| @@ -106,7 +108,11 @@ class MobileScannerController { | @@ -106,7 +108,11 @@ class MobileScannerController { | ||
| 106 | ); | 108 | ); |
| 107 | break; | 109 | break; |
| 108 | case 'barcodeWeb': | 110 | case 'barcodeWeb': |
| 109 | - barcodesController.add(Barcode(rawValue: data as String?)); | 111 | + final bytes = (binaryData as List).cast<int>(); |
| 112 | + barcodesController.add(Barcode( | ||
| 113 | + rawValue: data as String?, | ||
| 114 | + rawBytes: Uint8List.fromList(bytes), | ||
| 115 | + )); | ||
| 110 | break; | 116 | break; |
| 111 | default: | 117 | default: |
| 112 | throw UnimplementedError(); | 118 | 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