unico_check 4.44.0
unico_check: ^4.44.0 copied to clipboard
Esta biblioteca visa implementar a tecnologia unico check na plataforma flutter.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:unico_check/unico_check.dart';
import 'config.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'unico check',
theme: ThemeData(
primaryColor: const Color(0xFF0B38E7),
),
home: const MyHomePage(title: 'unico | check'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
MyHomePageState createState() => MyHomePageState();
}
class MyHomePageState extends State<MyHomePage>
implements UnicoListener, UnicoSelfie, UnicoDocument {
late UnicoCheckBuilder _unicoCheck;
late UnicoCheckCameraOpener _opener;
void _showAlertDialog(String content, {String? title}) {
Future.microtask(() {
if (!mounted) return;
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text(title ?? "Debug"),
content: Text(content),
actions: [
TextButton(
child: const Text("OK"),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
});
}
final _theme = UnicoTheme(
colorSilhouetteSuccess: "#4ca832",
colorSilhouetteError: "#fcdb03",
colorTextMessage: '#000000',
colorBackground: "#3295a8",
colorProgressBar: "#4ca832",
colorCancelButtonIcon: "#4ca832");
@override
void initState() {
super.initState();
initUnicoCamera();
configUnicoCamera();
}
void initUnicoCamera() {
_unicoCheck = UnicoCheck(
listener: this,
unicoConfigIos: configIos,
unicoConfigAndroid: configAndroid);
}
void configUnicoCamera() {
_unicoCheck
.setTheme(unicoTheme: _theme)
.setTimeoutSession(timeoutSession: 55)
.setEnvironment(unicoEnvironment: UnicoEnvironment.UAT);
}
/// Unico callbacks
@override
void onErrorUnico(UnicoError error) {
_showAlertDialog(
'onErrorUnico: code=${error.code} description=${error.description}');
}
@override
void onUserClosedCameraManually() {
_showAlertDialog('onUserClosedCameraManually');
}
@override
void onSystemChangedTypeCameraTimeoutFaceInference() {
_showAlertDialog('onSystemChangedTypeCameraTimeoutFaceInference');
}
@override
void onSystemClosedCameraTimeoutSession() {
_showAlertDialog('onSystemClosedCameraTimeoutSession');
}
/// Selfie callbacks
@override
void onSuccessSelfie(ResultCamera result) {
_showAlertDialog('onSuccessSelfie: base64 length=${result.base64?.length}; encrypted length=${result.encrypted?.length}');
}
@override
void onErrorSelfie(UnicoError error) {
_showAlertDialog(
'onErrorSelfie: code=${error.code} description=${error.description}');
}
/// Document callbacks
@override
void onSuccessDocument(ResultCamera resultCamera) {
_showAlertDialog(
'onSuccessDocument: base64 length=${resultCamera.base64?.length}; encrypted length=${resultCamera.encrypted?.length}');
}
@override
void onErrorDocument(UnicoError error) {
_showAlertDialog(
'onErrorDocument: code=${error.code} description=${error.description}');
}
void setCameraSmart() {
_opener = _unicoCheck
.setAutoCapture(autoCapture: true)
.setSmartFrame(smartFrame: true)
.build();
}
void setCameraNormal() {
_opener = _unicoCheck
.setAutoCapture(autoCapture: false)
.setSmartFrame(smartFrame: false)
.build();
}
void setCameraSmartWithButton() {
_opener = _unicoCheck
.setAutoCapture(autoCapture: false)
.setSmartFrame(smartFrame: true)
.build();
}
void openCamera() {
setCameraSmart();
_opener.openCameraSelfie(listener: this);
}
void openCameraNormal() {
setCameraNormal();
_opener.openCameraSelfie(listener: this);
}
void openCameraSmartWithButton() {
setCameraSmartWithButton();
_opener.openCameraSelfie(listener: this);
}
void openCameraDocumentCNH() {
_unicoCheck
.build()
.openCameraDocument(documentType: DocumentType.CNH, listener: this);
}
void openCameraDocumentCNHFront() {
_unicoCheck.build().openCameraDocument(
documentType: DocumentType.CNH_FRENTE, listener: this);
}
void openCameraDocumentCNHVerso() {
_unicoCheck.build().openCameraDocument(
documentType: DocumentType.CNH_VERSO, listener: this);
}
void openCameraDocumentRGFront() {
_unicoCheck.build().openCameraDocument(
documentType: DocumentType.RG_FRENTE, listener: this);
}
void openCameraDocumentRGVerso() {
_unicoCheck.build().openCameraDocument(
documentType: DocumentType.RG_VERSO, listener: this);
}
void openCameraDocumentCPF() {
_unicoCheck
.build()
.openCameraDocument(documentType: DocumentType.CPF, listener: this);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
margin: const EdgeInsets.only(top: 50),
child: const Text(
'Bem-vindo a poc do unico | check !',
style: TextStyle(fontSize: 20.0),
),
),
Container(
margin: const EdgeInsets.all(25),
child: const Text(
'Teste agora nossa tecnologia:',
style: TextStyle(fontSize: 16.0),
),
),
Container(
margin: const EdgeInsets.only(top: 10, bottom: 10),
child: const Text(
'Camera para selfie',
style: TextStyle(fontSize: 15.0),
),
),
Container(
margin: const EdgeInsets.all(10),
child: TextButton(
onPressed: openCameraNormal,
child: const Text('Camera normal'),
),
),
Container(
margin: const EdgeInsets.all(10),
child: TextButton(
onPressed: openCamera,
child: const Text('Camera inteligente'),
),
),
Container(
margin: const EdgeInsets.all(10),
child: TextButton(
onPressed: openCameraSmartWithButton,
child: const Text('Camera smart button'),
),
),
Container(
margin: const EdgeInsets.only(top: 10, bottom: 10),
child: const Text(
'Camera para documentos',
style: TextStyle(fontSize: 15.0),
),
),
Container(
margin: const EdgeInsets.all(10),
child: TextButton(
onPressed: openCameraDocumentCNH,
child: const Text('Documentos CNH')),
),
Container(
margin: const EdgeInsets.all(10),
child: TextButton(
onPressed: openCameraDocumentCNHFront,
child: const Text('Documentos CNH Frente'),
),
),
Container(
margin: const EdgeInsets.all(10),
child: TextButton(
onPressed: openCameraDocumentCNHVerso,
child: const Text('Documentos CNH Verso'),
),
),
Container(
margin: const EdgeInsets.all(10),
child: TextButton(
onPressed: openCameraDocumentRGFront,
child: const Text('Documentos RG Frente'),
),
),
Container(
margin: const EdgeInsets.all(10),
child: TextButton(
onPressed: openCameraDocumentRGVerso,
child: const Text('Documentos RG verso'),
),
),
Container(
margin: const EdgeInsets.all(10),
child: TextButton(
onPressed: openCameraDocumentCPF,
child: const Text('Documentos CPF'),
),
),
],
),
),
);
}
}