Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Beginner Web en 13 Noviembre 2020, 18:15 pm



Título: DART modificar para que funcione la app
Publicado por: Beginner Web en 13 Noviembre 2020, 18:15 pm
Esa es mi aplicacion debe leer un qr y el codigo enviarlo como peticion GET a un sitio devolver algo, con el json devuelto evalueo algunas cosas y segun eso muestro dos mensajes diferentes en la pantalla
Código
  1. import 'package:flutter/material.dart';
  2. //Agrego esta weas de librerias
  3. import 'package:barcode_scan/barcode_scan.dart';
  4. import 'package:http/http.dart' as http;
  5. import 'dart:convert';
  6.  
  7. void main() => runApp(MaterialApp(
  8.      theme: ThemeData(primarySwatch: Colors.green),
  9.      home: MyHomePage(),
  10.    ));
  11.  
  12. class MyHomePage extends StatefulWidget {
  13.  @override
  14.  _MyHomePageState createState() => _MyHomePageState();
  15. }
  16.  
  17. class _MyHomePageState extends State<MyHomePage> {
  18.  ScanResult _scanResult;
  19.  
  20.  //Acá va la magía
  21.  
  22.  @override
  23.  Widget build(BuildContext context) {
  24.    return Scaffold(
  25.      appBar: AppBar(
  26.        title: Text('Lector códigos QR'),
  27.      ),
  28.      body: Center(
  29.          child: _scanResult == null
  30.              ? Text('Esperando datos de código')
  31.              : Column(
  32.                  children: [
  33.                    Text('Contenido: ${_scanResult.rawContent}'),
  34.                    Text('Estado: ${_validado}'),
  35.                  ],
  36.                )),
  37.      floatingActionButton: FloatingActionButton(
  38.        onPressed: () {
  39.          _scanCode();
  40.        },
  41.        child: Icon(Icons.camera),
  42.      ),
  43.      floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
  44.    );
  45.  }
  46.  
  47. //Método para escanear el codigo Qr
  48.  Future<void> _scanCode() async {
  49.    var result = await BarcodeScanner.scan();
  50.  
  51.    recibirRespuestaGET(result.toString());
  52.  
  53.    if (this._id == result.toString() && this._estado == "CONFIRMADO") {
  54.      setState(() {
  55.        _validado = "CONFIRMADO";
  56.      });
  57.    } else {
  58.      setState(() {
  59.        _validado = "DENEGADO";
  60.      });
  61.    }
  62.  }
  63.  
  64.  Future<void> recibirRespuestaGET(String result) async {
  65.    final respuesta = await http
  66.        .get('https://mi-sitio.com/algo/?id=' + result);
  67.    if (respuesta.statusCode == 200) {
  68.      setState(() {
  69.        var parsedJson = json.decode(respuesta.body);
  70.        _id = parsedJson["_id"];
  71.        _estado = parsedJson["estado"];
  72.      });
  73.    } else {
  74.      throw Exception("Fallo");
  75.    }
  76.  }
  77.  
  78.  
  79.  String _id;
  80.  String _estado;
  81.  String _validado = "";
  82. }
  83.  
  84.  


Título: Re: aplicacion celular no funciona como deberia (DART)
Publicado por: Danielㅤ en 13 Noviembre 2020, 20:47 pm
Hola, que es exactamente lo que no funciona?.


Saludos


Título: Re: aplicacion celular no funciona como deberia (DART)
Publicado por: Beginner Web en 14 Noviembre 2020, 13:58 pm
en una primer instancia leia el qr normalmente, luego cuando le incorperé la peticion GET a una página para tratar la informacion del json y usarla para mostrar un mensaje dejo de funcionar el lector.

No se si este fallando la peticion GET o cuando uso su informacion para poder mostrar ese mensaje en pantalla.


Título: Re: aplicacion celular no funciona como deberia (DART)
Publicado por: Danielㅤ en 14 Noviembre 2020, 14:14 pm
Has comprobado que tú aplicación esté realizando correctamente la petición GET?, has mirado en tu log del servidor/apache que la petición se está enviando y está llegando correctamente al servidor?.

No tengo conocimientos sobre ese lenguaje, pero habría que ver cómo estás usando la petición GET, porque tal vez el programa está intentando hacer las 2 cosas al mismo tiempo o tal vez estás poniendo el código de la petición GET entremedio del código del lector QR y por eso no funciona, primero tenés que asegurarte que todo el código del lector este completo y después ahí recién hacer la petición GET.

Haz la prueba haciendo una petición GET normal, sin ninguna información del lector QR, es decir..

1. Primero deshabilita/comenta todo el código del lector QR para que quede inactivo.

2. Solo deja el código de la petición GET.

3.  Haz una petición GET normal y verifica en el log de apache si llegó correctamente esa petición.

4. Si los 3 puntos anteriores andan bien, entonces comprueba que el código del lector esté completo y que no interfiera con el de la solicitud GET, es decir crea 2 funciones, una que sea la del lector y la otra la de la petición.

5. Ejecuta la función del lector y cuando termine todo el proceso, ahí ejecuta la otra función de la petición.

Comprueba eso por favor y nos comentas.


Saludos


Título: Re: aplicacion celular no funciona como deberia (DART)
Publicado por: Beginner Web en 14 Noviembre 2020, 14:37 pm
el get a mi api rest si funciona lo probe con el postman, el problema seguro esta en el codigo, asi como se ve ahi dices que ya funciona?
SI, me faltaprobar hacer la peticion GET sin el Qr, pero no entiendo como modifico el codigo ahi, tengo apenas 4 horas programando en dart y no entiendo algunas cosas.