#1 2017-04-08 06:12:55

Patricio
Member
Registered: 2017-04-08
Posts: 6

Lector QR conectado a base datos

Hola David, antes de todo debo felicitarte porque sin duda has creado una herramienta fantástica, con un potencial gigantesco.

Estoy probando la versión 2017.25 en versión DEMO y todo se ve excelente, pero necesito utilizar tu software para una crear una app con unas funciones específicas y antes de comprarla quería pedirte que me confirmaras si podré lograr mi propósito, ya que hice unas pruebas y no me funcionó bien.

Básicamente necesito crear una app que sea un lector de códigos QR, decodifique la data contenida en el QR utilizando un script JAVA y luego utilice esos datos decodificados para hacer una consulta online a una base de datos y recibir una respuesta, y, si se está offline, almacenar la consulta de forma local hasta que se tenga conexión. Cuando vi que todas estas características estaban incluidas en los ejemplos salté de alegría, no lo podía creer!!! Pero al empezar a probar me encontré con los siguientes problemas que te pido por favor me puedas aclarar:

Phonegap me entrega múltiples errores al construir el ejemplo Scanner:

"
-compile:
    [javac] Compiling 11 source files to /project/bin/classes
    [javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
    [javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
    [javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
    [javac] /project/src/com/phonegap/plugins/barcodescanner/BarcodeScanner.java:27: error: package com.google.zxing.client.android does not exist
    [javac] import com.google.zxing.client.android.CaptureActivity;
    [javac]                                       ^
    [javac] /project/src/com/phonegap/plugins/barcodescanner/BarcodeScanner.java:28: error: package com.google.zxing.client.android.encode does not exist
    [javac] import com.google.zxing.client.android.encode.EncodeActivity...
...BUILD FAILED
/android-sdk/tools/ant/build.xml:716: The following error occurred while executing this line:
/android-sdk/tools/ant/build.xml:730: Compile failed; see the compiler error output for details.
"

¿Cómo puedo probar un ejemplo de lector de QR?

Segundo, al tratar de leer datos utilicé el ejemplo Database. Funciona perfecto con las rutas por defecto (https://www.davidesperalta.com/Humm/Sit … wNotes.php) pero al tratar de leer data de otro dominio (utilizo como base el script PHP que viene de ejemplo) me aparece un error. Específicamente, leer las notas desde: http://www.bastidas.cl/app/notas-mostrar.php me entrega error. Lo probé en un dominio con SSL, con una URL https, y también error. Si en mi prueba genero un nuevo registro, lo guarda en la DB, pero la app igualmente muestra un error.

¿Sabes a qué se pueda deber este problema?

Busqué en este blog soluciones a estos problemas pero no encontré soluciones por lo que te pido por favor, cuando tengas un tiempo, puedas ayudarme con mis dudas porque de verdad que estoy fascinado con App Builder y presiento que puede ser la solución a todas mis necesidades.

Saludos cordiales y de nuevo felicitaciones por tu desarrollo.

Offline

#2 2017-04-08 09:40:52

David
Admin
From: Alcobendas, Madrid, Spain
Registered: 2015-04-21
Posts: 1,657
Website

Re: Lector QR conectado a base datos

Hola Patricio,

Gracias por su interés en mi trabajo con App Builder y por sus amables palabras. En primer lugar, acabo de probar el ejemplo Scanner y este compila como se espera utilizando Apache Cordova. En efecto, algunas veces es posible usar Adobe Phonegap, pero, mi recomendación es utilizar Apache Cordova por varias razones: está mejor integrado con App Builder, y, no tiene ninguna limitación en el número de proyectos ni ninguna otra.

En este hilo se trata el asunto de cómo instalar Apache Cordova. Personalmente, siempre enlazo también a este otro tutorial, que, muestra paso por paso cómo instalar Apache Cordova, el Android SDK, etc. Así que mi recomendación sobre este asunto es utilizar Apache Cordova en lugar de Phonegap. Pruebe usted a hacerlo, y, si encuentra cualquier problema, repórtelo aquí para intentar ayudarle.

Respecto del script PHP que está tratando usar, el problema (ciertamente, el depurador de App Builder no es capaz -todavía- de informar adecuadamente de esto) está en los permisos "CORS" para acceder a dicho "script" desde nuestra aplicación. Podrá verlo usted mismo si prueba a ejecutar su aplicación en Firefox, por ejemplo, echando un vistazo a la consola de desarrollador (F12).

Si se fija, en el ejemplo "Database", en el "script" "Initialize.php", puede encontrar el siguiente código al principio del todo:

// Enable CORS (http://enable-cors.org/server_php.html)
header('Access-Control-Allow-Origin: *');
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
  if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
    header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
  if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
    header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
  exit;
}

Dicho código está habilitando los permisos "CORS" para que sea posible acceder a dicho "script" desde nuestras aplicaciones. Pienso que tal vez usted no esté usando el archivo "Initialize.php", de modo que, no está incluyendo el anterior código en su "script" PHP. Por favor, incluya dicho código en su "script". Una vez hecho eso no debería tener problema en utilizar el "script" en cuestión desde su aplicación.

De nuevo muchas gracias por su interés Patricio. Por favor, pruebe las posibles soluciones que le ofrezco en este mensaje y comente aquí si en efecto le sirven o si necesita más ayuda.

Offline

#3 2017-04-08 11:50:11

Patricio
Member
Registered: 2017-04-08
Posts: 6

Re: Lector QR conectado a base datos

David, muchas gracias por la pronta respuesta. Efectivamente al agregar el código para habilitar CORS que indicas, todas las funciones del ejemplo Database se ejecutan sin problema. En cuanto al lector de QR, haré las pruebas con Apache Cordova, utilizo Phonegap sólo por la facilidad de construcción para iOS, pero si me dices que App Builder se integra mejor con Cordova vale la pena el cambio.

De nuevo gracias por la ayuda y comento cómo me fue.

Offline

#4 2017-04-08 11:57:57

David
Admin
From: Alcobendas, Madrid, Spain
Registered: 2015-04-21
Posts: 1,657
Website

Re: Lector QR conectado a base datos

Hola Patricio,

Patricio wrote:

David, muchas gracias por la pronta respuesta. Efectivamente al agregar el código para habilitar CORS que indicas, todas las funciones del ejemplo Database se ejecutan sin problema. En cuanto al lector de QR, haré las pruebas con Apache Cordova, utilizo Phonegap sólo por la facilidad de construcción para iOS, pero si me dices que App Builder se integra mejor con Cordova vale la pena el cambio.

De nuevo gracias por la ayuda y comento cómo me fue.

Siempre gracias a usted por su interés. Ciertamente, App Builder se integra mejor con Apache Cordova. Por poner un ejemplo (en este hilo encontrará más información), App Builder prepara el archivo BAT necesario para poder compilar y ejecutar nuestra aplicación, directamente, en un dispositivo conectado a nuestro ordenador mediante un cable USB. Generalmente depuramos la aplicación dentro de App Builder, pero, dicho archivo BAT hace más o menos sencilla la operación de probar nuestra aplicación en Android, por ejemplo.

Si tiene cualquier otra pregunta no dude en utilizar este foro.

Offline

#5 2017-04-08 13:30:29

Patricio
Member
Registered: 2017-04-08
Posts: 6

Re: Lector QR conectado a base datos

Genial, por lo que veo tengo mucha más libertad con Apache Cordova. Aún no pruebo el BAT pero suena muy útil. Esta semana estaré haciendo pruebas para ver si se puede hacer lo que necesito.

Pero un comentario a los usuarios que decidan utilizar Phonegap: Recuerden especificar en el archivo xml manifiesto la última versión de Phonegap (phonegap-version) para que se construya con las nuevas versiones de los plugins y así no les dará problemas de compatibilidad. No sean como yo que no vio ese mensaje en rojo que indicaba que ese era el problema xD

Saludos.

Offline

#6 2017-04-08 13:33:09

David
Admin
From: Alcobendas, Madrid, Spain
Registered: 2015-04-21
Posts: 1,657
Website

Re: Lector QR conectado a base datos

Hola Patricio,

Patricio wrote:

Genial, por lo que veo tengo mucha más libertad con Apache Cordova. Aún no pruebo el BAT pero suena muy útil. Esta semana estaré haciendo pruebas para ver si se puede hacer lo que necesito.

Pero un comentario a los usuarios que decidan utilizar Phonegap: Recuerden especificar en el archivo xml manifiesto la última versión de Phonegap (phonegap-version) para que se construya con las nuevas versiones de los plugins y así no les dará problemas de compatibilidad. No sean como yo que no vio ese mensaje en rojo que indicaba que ese era el problema xD

Saludos.

Tal vez pueda hacerse algo respecto de esto último... ¿puede usted indicar qué ha tenido que cambiar en el archivo "config.xml" para que funcione con Phonegap? Tal vez pueda añadir lo necesario en App Builder de modo que este lo haga automáticamente.

Offline

#7 2017-04-08 14:12:57

Patricio
Member
Registered: 2017-04-08
Posts: 6

Re: Lector QR conectado a base datos

David wrote:

Hola Patricio,

Tal vez pueda hacerse algo respecto de esto último... ¿puede usted indicar qué ha tenido que cambiar en el archivo "config.xml" para que funcione con Phonegap? Tal vez pueda añadir lo necesario en App Builder de modo que este lo haga automáticamente.

En el archivo "config.xml", línea 10:

<preference name="phonegap-version" value="cli-5.2.0" />

Eso le indica a Phonegap la versión que utilizará para compilar. El problema es que pasan a "deprecated" muchos plugins en cada cambio de versión.

En este caso lo cambié a:

<preference name="phonegap-version" value="cli-6.5.0" />

Desconozco si existe alguna API relacionada a esto que permita la automatización, pero lo dudo mucho. Personalmente siempre hago el cambio de forma manual buscando los plugins que aún sean compatibles.

Saludos.

Offline

#8 2017-04-08 14:16:03

David
Admin
From: Alcobendas, Madrid, Spain
Registered: 2015-04-21
Posts: 1,657
Website

Re: Lector QR conectado a base datos

Hola Patricio,

Creo que puedo hacer algo al respecto. De hecho esa versión "cli-5.2.0" es escrita desde App Builder, ahora bien, creo que, en lugar de cambiarla por la versión "cli-6.5.0", lo que voy a hacer es añadir una nueva opción en el programa que nos permita indicar qué versión queremos utilizar, siendo por defecto "cli-6.5.0".

¡Muchas gracias por su ayuda!

Offline

#9 2017-04-08 14:35:33

Patricio
Member
Registered: 2017-04-08
Posts: 6

Re: Lector QR conectado a base datos

David, yo feliz si pude aportar algo en su trabajo.


Saludos.

Offline

#10 2017-04-08 15:11:21

David
Admin
From: Alcobendas, Madrid, Spain
Registered: 2015-04-21
Posts: 1,657
Website

Re: Lector QR conectado a base datos

Hola Patricio,

Acabo de actualizar App Builder, añadiendo la posibilidad de especificar la versión de Adobe Phonegap(tm) CLI que precisemos usar. Esto se hace en una nueva subpestaña "Phonegap" dentro de la pestaña "Cordova" del diálogo de opciones de la aplicación. Por defecto la versión utilizada ahora mismo es "6.5.0".

Offline

#11 2017-04-08 16:09:04

Patricio
Member
Registered: 2017-04-08
Posts: 6

Re: Lector QR conectado a base datos

Ahora entiendo que es esa atención a cada detalle de su parte lo que hace a App Builder destacar por encima del resto de aplicaciones similares. Muchas gracias David.

Saludos.

Offline

#12 2017-04-08 17:42:17

David
Admin
From: Alcobendas, Madrid, Spain
Registered: 2015-04-21
Posts: 1,657
Website

Re: Lector QR conectado a base datos

Hola a todos,

Patricio wrote:

Ahora entiendo que es esa atención a cada detalle de su parte lo que hace a App Builder destacar por encima del resto de aplicaciones similares. Muchas gracias David.

Saludos.

¡Se hace lo que se puede! Muchas gracias Patricio. smile

Offline

Board footer

Powered by FluxBB


Copyright ©2018 DecSoft. All rights reserved.