28 lines
693 B
Dart
28 lines
693 B
Dart
import 'dart:async';
|
|
import 'package:flutter/services.dart';
|
|
|
|
class ScanResult {
|
|
final String barcode;
|
|
final String codeType;
|
|
|
|
ScanResult({required this.barcode, required this.codeType});
|
|
}
|
|
|
|
class ScannerService {
|
|
static const _eventChannel =
|
|
EventChannel('com.example.pad_scanner/scan');
|
|
|
|
Stream<ScanResult>? _scanStream;
|
|
|
|
Stream<ScanResult> get scanResults {
|
|
_scanStream ??= _eventChannel
|
|
.receiveBroadcastStream()
|
|
.map((event) => event as Map)
|
|
.map((event) => ScanResult(
|
|
barcode: event['barcode'] as String? ?? '',
|
|
codeType: event['codeType'] as String? ?? 'UNKNOWN',
|
|
));
|
|
return _scanStream!;
|
|
}
|
|
}
|