summi_eid 0.0.1
summi_eid: ^0.0.1 copied to clipboard
summi_eid_sdk
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:summi_eid/summi_eid.dart';
import 'id_card_page.dart';
import 'travel_card_page.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Summi EID Demo',
theme: ThemeData(primarySwatch: Colors.blue),
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
final SummiEid _sdk = SummiEid();
final TextEditingController _appIdCtrl = TextEditingController(text: 'a3beb4f6ea5e47de90a24cc5a9adecfb');
final TextEditingController _appKeyCtrl = TextEditingController(text: 'c7ddc1dc2eba4321b7a34bb21ba6f421');
String _status = '未初始化';
bool _busy = false;
@override
void dispose() {
_appIdCtrl.dispose();
_appKeyCtrl.dispose();
super.dispose();
}
Future<void> _initSdk() async {
if (_busy) return;
setState(() {
_busy = true;
_status = '初始化中...';
});
try {
final res = await _sdk.init(_appIdCtrl.text.trim());
setState(() {
_status = '初始化成功 code=${res.code}, msg=${res.message}';
});
} catch (e) {
setState(() {
_status = '初始化失败: $e';
});
} finally {
setState(() {
_busy = false;
});
}
}
Future<void> _destroySdk() async {
if (_busy) return;
setState(() {
_busy = true;
_status = '销毁中...';
});
try {
await _sdk.destroy();
setState(() {
_status = '已销毁';
});
} catch (e) {
setState(() {
_status = '销毁失败: $e';
});
} finally {
setState(() {
_busy = false;
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Summi EID 示例'),
centerTitle: true,
),
body: Padding(
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
TextField(
controller: _appIdCtrl,
decoration: const InputDecoration(labelText: 'AppId', border: OutlineInputBorder()),
),
const SizedBox(height: 8),
TextField(
controller: _appKeyCtrl,
decoration: const InputDecoration(labelText: 'AppKey (用于 getIDCardInfo)', border: OutlineInputBorder()),
),
const SizedBox(height: 12),
Row(
children: [
Expanded(
child: ElevatedButton(
onPressed: _busy ? null : _initSdk,
child: const Text('初始化 SDK'),
),
),
const SizedBox(width: 12),
Expanded(
child: ElevatedButton(
onPressed: _busy ? null : _destroySdk,
child: const Text('销毁 SDK'),
),
),
],
),
const SizedBox(height: 8),
Text(_status, style: const TextStyle(fontSize: 12, color: Colors.black54)),
const SizedBox(height: 24),
ElevatedButton(
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => IdCardPage(appKey: _appKeyCtrl.text.trim()),
),
);
},
child: const Text('读取身份证 (startCheckCard)'),
),
const SizedBox(height: 12),
ElevatedButton(
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (_) => const TravelCardPage()),
);
},
child: const Text('读取旅行卡 (startCheckCardEx)'),
),
],
),
),
);
}
}