➜ Servicio para enviar pedido a WhatsApp
Cómo Enviar Pedidos de Restaurante a WhatsApp en Flutter: Implementación de un Servicio Eficiente | Aprende a integrar la funcionalidad de enviar pedidos de un restaurante a través de WhatsApp en tu aplicación Flutter. En esta lección, exploramos la clase WhatsAppService, que utiliza el paquete url_launcher para generar un mensaje detallado con los artículos del carrito de compras
Implementar un servicio en Flutter para enviar un pedido de un restaurante a través de WhatsApp.
Aprende a integrar la funcionalidad de enviar pedidos de un restaurante a través de WhatsApp en tu aplicación Flutter. En esta lección, exploramos la clase WhatsAppService
, que utiliza el paquete url_launcher
para generar un mensaje detallado con los artículos del carrito de compras. Descubre cómo construir la URL adecuada y enviar el pedido de manera sencilla y eficiente. Ideal para desarrolladores que buscan mejorar la experiencia del usuario en aplicaciones de comercio electrónico.
1. Importaciones Necesarias
dart
import 'package:apprestaurant/providers/cart_provider.dart';
import 'package:url_launcher/url_launcher.dart';
cart_provider.dart
: Proveedor para gestionar los datos del carrito de compras.url_launcher.dart
: Paquete que permite abrir enlaces en aplicaciones externas, como WhatsApp.
2. Clase WhatsAppService
dart
class WhatsAppService {
static const String numero = "51xxxxxxxxxx"; // Número de teléfono para enviar el pedido
numero
: Almacena el número de teléfono con el código de país.
3. Método sendOrderToWhatsApp
dart
static Future<void> sendOrderToWhatsApp(CartProvider cart) async {
- Parámetro:
cart
de tipoCartProvider
, que contiene los detalles del pedido.
3.1 Generación del Mensaje
dart
String message = _generateOrderMessage(cart);
- Llama a
_generateOrderMessage
para crear un mensaje que incluya todos los detalles del pedido.
3.2 Construcción de la URL de WhatsApp
dart
String url = "https://wa.me/$numero?text=${Uri.encodeComponent(message)}";
- Crea una URL para WhatsApp que contiene el mensaje codificado.
3.3 Verificación y Lanzamiento de WhatsApp
dart
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'No se puedo abrir WhatsApp. no esta instalado';
}
- Verifica si la URL se puede abrir (si WhatsApp está instalado).
- Si es posible, abre WhatsApp con el mensaje; de lo contrario, lanza un error.
4. Método Privado _generateOrderMessage
dart
static String _generateOrderMessage(CartProvider cart) {
StringBuffer buffer = StringBuffer();
buffer.write("NUEVO PEDIDO\n");
buffer.writeln("Detalles del Pedido\n");
- Crea un
StringBuffer
para construir el mensaje.
4.1 Detalles del Pedido
dart
for(var item in cart.items) {
buffer.writeln(
"${item.qty} * ${item.name} - \$${(item.price * item.qty).toStringAsFixed(2)}"
);
}
- Recorre los artículos en el carrito y añade una línea por cada uno con la cantidad, el nombre y el precio total.
4.2 Totales
dart
buffer.writeln("\n SubTotal: \$${cart.subTotal.toStringAsFixed(2)}");
buffer.writeln("\n TAX (18%): \$${cart.tax.toStringAsFixed(2)}");
buffer.writeln("\n Total: \$${cart.total.toStringAsFixed(2)}");
- Añade el subtotal, el impuesto (18%) y el total al mensaje.
5. Retorno del Mensaje
dart
return buffer.toString();
}
- Convierte el
StringBuffer
en unString
y lo devuelve.
La clase WhatsAppService
permite enviar un pedido a través de WhatsApp, construyendo un mensaje detallado a partir de los elementos en el carrito. Utiliza el paquete url_launcher
para abrir WhatsApp y enviar el mensaje al número especificado.
3089 visitas
Capítulo 16 – Levantar el proyecto en modo Local »
Descarga el código del proyecto
Descarga el código fuente del proyecto adquiriendo el curso completo
Comprar