qrdniflut 1.0.2 copy "qrdniflut: ^1.0.2" to clipboard
qrdniflut: ^1.0.2 copied to clipboard

Plugin para la lectura y validación de códigos QR generados por la app MiDNI. Disponible para android e iOS.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:qrdniflut/qrdniflut.dart'; // Asegúrate que el nombre coincida con tu pubspec.yaml

void main() => runApp(const MyApp());

class MyApp extends StatefulWidget {
  const MyApp({super.key});
  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _status = 'Esperando...';
  final _plugin = Qrdniflut(); // Instancia de tu clase principal
  
  @override
  void initState() {
    _configurar();
    super.initState();
  }

  void _configurar() async {
    Map<String, String> misCertificados = {
        "PRODUCCION": "http://pki.policia.es/cnp/MiDNI/APPDNIMOVIL.cer",
        "PRUEBAS": "http://pki.policia.es/cnp/MiDNI/APPDNIMOVIL_pruebas.cer",
    };
    final res = await _plugin.configure("ENwxSJNttKp88QWpIKv7IrvwouTFcar8jvetYHIfTygZBj9zp5y52BvkjV7a6ohmBeCdRjxLWsm8NkVER7Mf9q5UowqDQnOfVZeGOY+ZmnVcwETbNhFsb2vAL2AoKZLJJ8G33tMo6uhflxmz18j/5Y2lwyv3bAYoIcfgDB5lpRRK0Zg+zFn14QTLoatdhesQD5y4toh7Abb59dtHkmw1gGdRqhnV9DM69vPMk2aDGUQ7Y5nnx15e1EO85ba6a38CERobw0F+i4XQsAHpkKt6CMqPv6dqiKngD9kFfpwLK5JIIjzJ4HWimzpLrm5vMVD+1wxtQbtEVe8aVxFgh+BIKQ==", certs: misCertificados);
    setState(() => _status = "Licencia: ${res?['descripcion']}");

  }

  void _escanear() async {

    var status = await Permission.camera.status;
      
      if (status.isDenied) {
        // Solicita el permiso al usuario
        status = await Permission.camera.request();
      }

      if (status.isGranted) {
        // Si el permiso es concedido, abre el escaer
        try {
          final res = await _plugin.abrirEscaner();
          setState(() => _status = "DNI: ${res?['dni']} - ${res?['name']}");
        } catch (e) {
          setState(() => _status = "Error: $e");
        }
      } else {
        setState(() => _status = "El usuario denegó el permiso de cámara");
      }
  }

  void _procesaQR() async{
    var qrB64 = "QEc9wDdYF1nqm1Jnw0EUv5G2YtXXhacflLtHLscflxwV4teV4teQgJYAhDLiBTT0wgMXIGTUFEUklEdAZNQURSSURiBk1BRFJJRHgGTUFEUklEZANFU1BmDEpPU0UgLyBNQVJJQWgJQ0FBMDAwNDgyQAkwMDAwMDQ0NVBCCjExLTAxLTE5ODBEBkNBUk1FTkYTRVNQQcORT0xBIEVTUEHDkU9MQUgBRkwKMTItMDktMjAyOFCCA2cAAAAMalAgIA0KhwoAAAAUZnR5cGpwMiAAAAAAanAyIAAAAC1qcDJoAAAAFmloZHIAAAHsAAABkAABBwcAAAAAAA9jb2xyAQAAAAAAEQAAAxpqcDJj/0//UQApAAAAAAGQAAAB7AAAAAAAAAAAAAABkAAAAewAAAAAAAAAAAABBwEB/1IADAAAAAEABQQEAAD/XAAjQncgdvB28HbAbwBvAG7gZ1BnUGdoUAVQBVBHV9NX01di/2QAJQABQ3JlYXRlZCBieSBPcGVuSlBFRyB2ZXJzaW9uIDIuNS4w/5AACgAAAAACiQAB/5PPp0cAFABF679O7a+9oMFkIShc8ti0CP9cyCa2UJMRfDVahWxs9YiL2SaBCjsj15hOWF6ivm4kP/LXaBD5lD6lhNF5v172zRUqD/QDSbThkID/HiyGK7+8DwodRyTUAKcNaJQV/gizZlwS9HhILS70hf7XFCG1I1u5eoSAPiWofbBKALyXvi8N4D2is7VvyWhypcPkokPjXw+RAFcaYBqxk7l5v5kpMuEeD5vj/yiLONwSONiS2vRDduBcIyyyJJI5PG3axcVMimPw9aA2LrJxqCwEk5oO8uv8/rp/CUrNN1axXeuklB1sL4+x8tyqvVmdXceT1SWLlft0+WroFVywie0LwbRNOHfYZ9ByKVU+iXCb+loo1zwni/dSTqSfVVdayJrCq8M4m/CRJd+sbcPh2+Hw3sHaEKQ87BrkFgSbPE1U/0a8Bi5s/MyHLUWTfWEpOI5bienxRq3aqOT8YA+u3YkCjXKWmDvMZ1WJMASyKyevEdIrDkUTw3HZxMeTbOgj+ORKNMW3mpuSAi/Ya5h8/aUvDItBCT457FgxrrNGb1GfeYwhaJR/nDIUIYUPoqrTsc9bONkESmp5ZSh6fsRi17qhju0JmJUq/tj41YQgPABkYvs95sSo4+5KzIGIqmQqpFqLeE4j9VgZ666pCYUL7GuMOtiuK0LBPNlTJQ9LsONnE17Duiw7SPIW2tignhVyWuVEg37Wg5ysSQ/A9YIYgfuWBH+5FbaZa3VuUtCJOXE3229/bvZ5oaxM2G16W5Gz0nCbhBzGuakvE20KvfCDJWo/CmDoXKgihZOQAhmkNUqCwATLC0Xij+xWtrlLHUotaLHFANuzcFXkgP/ZgBMxNy0wNi0yMDMwIDEwOjUzOjMw/0APh5Cm/rerg0PLxSwIIGxEghNlOUEJST6981cw8y0zN8rNlTIrgbuAIUacnN7lpTRvLIqX+51P27I8saYiBpSEDsEewR7BHsEewR7BHsEewR7BHsEewR7BHsEewR7BHsEQ==";    
    try {
          final res = await _plugin.validaMiDNIQR(qrB64);
          setState(() => _status = "DNI: ${res?['dni']} - ${res?['name']}");
    } catch (e) {
      setState(() => _status = "Error: $e");
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Test QR DNI Flutter')),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(_status),
              ElevatedButton(onPressed: _configurar, child: const Text("Configurar")),
              ElevatedButton(onPressed: _escanear, child: const Text("Abrir Cámara")),
              ElevatedButton(onPressed: _procesaQR, child: const Text("Proces QR prueba")),
            ],
          ),
        ),
      ),
    );
  }
}
0
likes
135
points
76
downloads

Publisher

unverified uploader

Weekly Downloads

Plugin para la lectura y validación de códigos QR generados por la app MiDNI. Disponible para android e iOS.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on qrdniflut

Packages that implement qrdniflut