App inventor 2 en español
Cómo programar los teléfonos móviles con Android
mediante App inventor 2 - Juan Antonio Villalpando
--- PHP y MySQL en App Inventor 2 --
Volver al índice del tutorial de PHP y MySQL
____________________________
354.- Proyecto Bar de tapas. Subir y visualizar en web. (III).
p350C_bar_de_tapas.aia
__________________________________________
- Comentarios.
- En los dos tutoriales anteriores hemos desarrollado esta aplicación de pedidos de tapas y bebidas en un bar por el móvil.
- Vamos a mejorar la aplicación.
__________________________________________
- Mejora de los pedidos subidos a internet.
- Las próximas mejoras serán:
- Nombre de archivo subido, personalizado con nombre de mesa y hora y minuto: 20_12_Mesa1.htm
- El cocinero del bar, podrá ver el listado de pedidos entrando en una página web.
__________________________________________
- Diseño y Bloques.
- El Diseño es el mismo que teníamos en los tutoriales anteriores de este proyecto.
- Va a cambiar la parte final del código de App inventor y el código del archivo PHP.
- He creado una variable llamada a_web, donde se escribirá casi lo mismo que en el Etiqueta1. He añadido <BR> para separar los renglones cuando se vea como página web.
- He tomado el valor inicial que envió la pantalla Screen1, es decir si pulsé la Mesa3, el valor inicial será Mesa3.
- Cambio el € por un signo +, ya que el € da problemas al visualizarlo sin codificarlo bien en htm.
- Preparo la variable bonita_web, donde establezco los tamaños y colores de las páginas de pedidos.
- He cambiado el nombre del archivo PHP, ahora se llama subir_pedido_web.php
__________________________________________
- Código PHP.
subir_pedido_web.php
|
<?php
// Juan A. Villalpando
// kio4.com
date_default_timezone_set('Europe/Madrid');
setlocale(LC_ALL,'es_ES');
$dia=strftime("%A, %d de %B de %Y",time());
$hora=strftime("%H_%M",time());
$datos=$_POST;
$contenido=$datos['contenido'];
$mesa = substr($contenido, 0, 5);
$nombre_archivo = 'subidos/'.$hora."_".$mesa.".htm";
$auxi = fopen($nombre_archivo, 'w');
fwrite($auxi, $contenido);
fclose($auxi);
echo 'Recibido a las '.$hora;
?> |
- Debemos tener creado en el servidor el directorio "subidos", con todos los permisos, para subir los pedidos.
- Voy a hacer que el nombre de cada archivo de pedido tenga su hora de pedido y número de mesa que hizo el pedido.
- Tomo la hora y los minutos a los cuales se envió el pedido: date_default_timezone_set('Europe/Madrid');
- Del archivo tomo los 5 primeros caracteres, correspondiente a: Mesa3
- El nombre del archivo será: $nombre_archivo = $hora."_".$mesa.".htm";
- 20_12_Mesa3.htm
__________________________________________
- Visualizar el listado de pedidos y los pedidos.
- Los archivos de pedidos se guardarán en un directorio de nuestro hosting. Concretamente en el directorio "subidos".
- El cocinero, entrará en un página web y verá el contenido de los pedidos.
- En nuestro servidor web, hemos creado un directorio llamado "subidos", la forma de crearlo ya lo vimos en el tutorial: 323_subir_archivo.htm
- Es un directorio al que le hemos asignados todos los permisos.
subir_pedido_ver.php
|
<?php
// Juan A. Villalpando
// kio4.com
echo "<font size='5' face='Arial, Helvetica, sans-serif'>";
foreach (glob('subidos/*.*') as $nombre_archivo) {
echo "<a href='http://kio4.esy.es/".$nombre_archivo."'>".$nombre_archivo."</a><br>";
}
echo "</font>";
?>
|
- Subiremos este archivo .php
- Mediante un bucle va listando cada uno de los archivos que hay en el directorio: 'subidos/*.*'
- Ese directorio lo presenta con enlaces:
echo "<a href='http://androide.net23.net/".$nombre_archivo."'>".$nombre_archivo."</a><br>";
- Si entramos en esa página, que en esta ocasión es PHP, veremos ese listado:
http://kio4.esy.es/subir_pedido_ver.php
__________________________________________
- Comentarios.
- Hay problemas con las eñes y los acentos, en este caso sería menos escribir el contenido de los archivos de tapas y bebidas sin acentos. Cuando guardes los archivos de tapas.csv y bebidas.csv lo codificas en UFT-8 para que salgan los acentos.
- También se podría haber pasado en nombre de la mesa desde App inventor a PHP directamente como otra variable más.
_____________________
- Propuestas.
- Cada vez que se pulsa en una Mesa y entra la pantalla de Pedido, la aplicación va a internet para obtener los archivos de precios de tapas y bebidas, esto consume un tiempo.
- Sería conveniente lo siguiente: la aplicación tendría en la primera pantalla, la Screen1, solamente una portada de presentación. Cuando se ejecute la aplicación y entre en esta portada de inicio, el código irá a internet y bajará los archivos de precios de tapas y bebidas, solo los bajará una vez, cuando se ejecute la aplicación.
- Una vez bajado, entrará otra pantalla llamada Mesas, donde estarán las mesas y luego otra llamada Pedidos, donde estará el proceso de pedidos, pero ya no pedirá los archivos de tapas y bebidas a internet, ya que se bajó en la pantalla Screen1 de portada cuando se inició la aplicación. De esta manera la entrada a la pantalla de pedidos será más rápida y segura.
- En la portada de la Screen1, la información bajada de los archivos de tapas y bebidas irá a un par de archivos como vimos en el tutorial:
23C.- Pasar datos entre pantallas. Mediante archivos. Esos archivos ar1.txt y ar2.txr serán comunes a todas la ventanas. En la ventana Pedidos, los VisorDeListas se cargarán con los datos de esos archivo, como ya están bajados a la aplicación, no tendrá que ir a buscarlos a intenet.
p350E_bar_de_tapas.aia
__________________________________
__________________________________
|