card_scannerr 0.0.3
card_scannerr: ^0.0.3 copied to clipboard
A Flutter package to scan credit/debit card details using the camera.
import 'package:flutter/material.dart';
import 'package:card_scannerr/card_scannerr.dart';
void main() => runApp(const CardScannerApp());
class CardScannerApp extends StatelessWidget {
const CardScannerApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Card Scanner Demo',
theme: ThemeData(primarySwatch: Colors.blue),
home: const HomeScreen(),
);
}
}
class HomeScreen extends StatefulWidget {
const HomeScreen({super.key});
@override
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
CardDetails? _cardDetails;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Card Scanner Demo')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
if (_cardDetails != null) ...[
Padding(
padding: const EdgeInsets.all(20),
child: Column(
children: [
Text(
_cardDetails.toString(),
style: const TextStyle(fontSize: 18),
textAlign: TextAlign.center,
),
const SizedBox(height: 20),
if (_cardDetails!.frontImage != null)
Image.file(
_cardDetails!.frontImage!,
height: 120,
fit: BoxFit.contain,
),
if (_cardDetails!.backImage != null)
Image.file(
_cardDetails!.backImage!,
height: 120,
fit: BoxFit.contain,
),
],
),
),
],
ElevatedButton.icon(
icon: const Icon(Icons.credit_card),
label: const Text('Scan Card'),
onPressed: _scanCard,
),
],
),
),
);
}
Future<void> _scanCard() async {
final cardDetails = await startCardScanner(context);
if (cardDetails != null) {
setState(() => _cardDetails = cardDetails);
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Card scanned successfully!')),
);
}
}
}