DART modificar para que funcione la app

Iniciado por Beginner Web, 13 Noviembre 2020, 18:15 PM

0 Miembros y 1 Visitante están viendo este tema.

Beginner Web

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 (javascript) [Seleccionar]

import 'package:flutter/material.dart';
//Agrego esta weas de librerias
import 'package:barcode_scan/barcode_scan.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

void main() => runApp(MaterialApp(
     theme: ThemeData(primarySwatch: Colors.green),
     home: MyHomePage(),
   ));

class MyHomePage extends StatefulWidget {
 @override
 _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
 ScanResult _scanResult;

 //Acá va la magía

 @override
 Widget build(BuildContext context) {
   return Scaffold(
     appBar: AppBar(
       title: Text('Lector códigos QR'),
     ),
     body: Center(
         child: _scanResult == null
             ? Text('Esperando datos de código')
             : Column(
                 children: [
                   Text('Contenido: ${_scanResult.rawContent}'),
                   Text('Estado: ${_validado}'),
                 ],
               )),
     floatingActionButton: FloatingActionButton(
       onPressed: () {
         _scanCode();
       },
       child: Icon(Icons.camera),
     ),
     floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
   );
 }

//Método para escanear el codigo Qr
 Future<void> _scanCode() async {
   var result = await BarcodeScanner.scan();

   recibirRespuestaGET(result.toString());

   if (this._id == result.toString() && this._estado == "CONFIRMADO") {
     setState(() {
       _validado = "CONFIRMADO";
     });
   } else {
     setState(() {
       _validado = "DENEGADO";
     });
   }
 }

 Future<void> recibirRespuestaGET(String result) async {
   final respuesta = await http
       .get('https://mi-sitio.com/algo/?id=' + result);
   if (respuesta.statusCode == 200) {
     setState(() {
       var parsedJson = json.decode(respuesta.body);
       _id = parsedJson["_id"];
       _estado = parsedJson["estado"];
     });
   } else {
     throw Exception("Fallo");
   }
 }


 String _id;
 String _estado;
 String _validado = "";
}

7w7

Danielㅤ

Hola, que es exactamente lo que no funciona?.


Saludos
¡Regresando como cual Fenix! ~
Bomber Code © 2021 https://www.bombercode.net/foro/

Ayudas - Aportes - Tutoriales - Y mucho mas!!!

Beginner Web

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.
7w7

Danielㅤ

#3
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
¡Regresando como cual Fenix! ~
Bomber Code © 2021 https://www.bombercode.net/foro/

Ayudas - Aportes - Tutoriales - Y mucho mas!!!

Beginner Web

#4
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.
7w7