sima 1.0.1+7
sima: ^1.0.1+7 copied to clipboard
Flutter plugin for SIMA digital signature integration.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:sima/sima.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
home: SimaExamplePage(),
);
}
}
class SimaExamplePage extends StatefulWidget {
const SimaExamplePage({super.key});
@override
State<SimaExamplePage> createState() => _SimaExamplePageState();
}
class _SimaExamplePageState extends State<SimaExamplePage> {
bool _isLoading = false;
String _resultText = 'Hazırdır';
Future<void> _startSima() async {
setState(() {
_isLoading = true;
_resultText = 'SIMA açılır...';
});
try {
final response = await Sima.login(
clientId: 'YOUR_CLIENT_ID',
clientMasterKey: 'YOUR_MASTER_KEY',
returnScheme: 'your-app-scheme',
serviceName: 'SIMA Example',
logoPath: 'assets/logo.png',
);
if (response == null) {
_setResult('Əməliyyat ləğv edildi');
return;
}
if (!response.isSuccess) {
_setResult('Xəta: ${response.message ?? 'unknown'}');
return;
}
_setResult('''
✅ UĞURLU
Request ID: ${response.requestId}
Signature: ${response.signature}
Certificate: ${response.certificate}
Challenge: ${response.challenge}
''');
} catch (e) {
_setResult('Xəta baş verdi: $e');
} finally {
setState(() => _isLoading = false);
}
}
void _setResult(String text) {
setState(() => _resultText = text);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('SIMA Plugin Example')),
body: Padding(
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
ElevatedButton(
onPressed: _isLoading ? null : _startSima,
child: _isLoading
? const SizedBox(
width: 18,
height: 18,
child: CircularProgressIndicator(strokeWidth: 2),
)
: const Text('Sign with SIMA'),
),
const SizedBox(height: 24),
Expanded(
child: SingleChildScrollView(
child: SelectableText(
_resultText,
style: const TextStyle(fontSize: 14),
),
),
),
],
),
),
);
}
}