Correo y SMS en Flutter

El mundo funciona en texto. Desde anuncios hasta conversaciones, el texto está en todas partes. Los modos más populares de comunicación textual oficial son los correos seguidos de los SMS. Las empresas utilizan estos modos para comunicarse no solo con sus empleados sino también con sus clientes. Esto había llevado a los desarrolladores de aplicaciones a incluir servicios de correo y SMS en sus aplicaciones. Flutter utiliza complementos especiales para que estas funciones funcionen y funcionen en las aplicaciones móviles.

Agregar dependencias en Flutter:

En Flutter, todo es un widget y, de la misma manera, Flutter también usa una gran cantidad de complementos o dependencias para que la aplicación funcione de manera más rápida y sencilla. En este caso, el complemento «url_launcher» se puede utilizar para iniciar el correo o SMS en una aplicación móvil.

Los pasos para agregar el complemento a la aplicación Flutter son los siguientes:

  • Abra el archivo «pubspec.yaml» de la carpeta del proyecto.

pubspec.yaml file

  • En el archivo pubspec.yaml, escriba » url_launcher :» en dependencias.

Después de agregar, el código se ve así:

Dart

dependencies:
 flutter:
   sdk: flutter
 url_launcher:
  • Ahora haga clic en el botón «Pub Get » en la parte superior de la aplicación (Android Studio).
  • El «Proceso finalizado con el código de salida 0» en la consola muestra que la dependencia se agregó correctamente.
  • Ahora importe el complemento o paquete agregando «importar ‘paquete: url_launcher/url_launcher.dart’;» código en la parte superior del archivo «main.dart».

Enviar un correo en Flutter:

Ahora, creemos una función a la que se pueda llamar cada vez que el usuario haga clic en un botón que esté vinculado a una ID de correo en particular, a la que el usuario pueda enviar un correo.

Dart

_sendingMails() async {
  var url = Uri.parse("mailto:feedback@geeksforgeeks.org");
  if (await canLaunchUrl(url)) {
    await launchUrl(url);
  } else {
    throw 'Could not launch $url';
  }
}
  1. La función se nombra aquí como » _sendingMails » y la función se declara como «async», de modo que devuelve una promesa.
  2. La variable «url» se asigna con el ID de correo requerido, como una string. La sintaxis «mailto:» le indica a la aplicación que abra la aplicación de correo predeterminada del teléfono móvil y que también complete la sección «Para» con el ID de correo mencionado en la variable ‘url’. Se declara como una “const” para que la variable no cambie en ninguna circunstancia.
  3. Si existe la posibilidad de lanzar la URL, solo entonces se lanza la URL llamando a la función launch() con la variable URL como atributo.
  4. De lo contrario, arrojará/imprimirá un texto con el valor de la URL, como un mensaje de error.

Envío de un SMS en Flutter:

Ahora, creemos una función a la que se pueda llamar cada vez que el usuario haga clic en un botón que está vinculado a un número de teléfono, al que el usuario puede enviar un SMS.

Dart

_sendingSMS() async {
  var url = Uri.parse("sms:966738292");
  if (await canLaunchUrl(url)) {
    await launchUrl(url);
  } else {
    throw 'Could not launch $url';
  }
}
  1. La función se nombra aquí como «_sendingSMS» y la función se declara como «async», de modo que devuelve una promesa.
  2. La variable «url» se asigna con el número de teléfono requerido, como una string. La sintaxis «sms:» le indica a la aplicación que abra la aplicación de mensajería predeterminada del teléfono móvil y también complete la sección «Para» con el número de teléfono mencionado en la variable ‘url’. Se declara como una “const”, para que la variable no se modifique en ninguna circunstancia.
  3. Si existe la posibilidad de iniciar la URL, solo entonces se inicia la URL llamando a la función «lanzamiento()» con la variable url como atributo.
  4. De lo contrario, arrojará/imprimirá un texto con el valor de la URL, como un mensaje de error.

Llamando a las funciones:

Las funciones anteriores se pueden llamar cuando sea necesario en el código, llamando el nombre de las funciones como tales. Los ejemplos son los siguientes:

Dart

ElevatedButton(
   onPressed: _sendingMails,
  style: ButtonStyle(
    padding:
        MaterialStateProperty.all(const EdgeInsets.all(5.0)),
    textStyle: MaterialStateProperty.all(
      const TextStyle(color: Colors.black),
    ),
  ),
  child: const Text('Here'),
), // ElevatedButton
 
// DEPRECATED
// RaisedButton(
//   onPressed: _sendingMails,
//   child: Text('Here'),
//   textColor: Colors.black,
//   padding: const EdgeInsets.all(5.0),
// ),
 
ElevatedButton(
  onPressed: _sendingSMS,
  style: ButtonStyle(
    padding:
        MaterialStateProperty.all(const EdgeInsets.all(5.0)),
    textStyle: MaterialStateProperty.all(
      const TextStyle(color: Colors.black),
    ),
  ),
  child: const Text('Here'),
), // ElevatedButton
// DEPRECATED
// RaisedButton(
//   onPressed: _sendingSMS,
//   textColor: Colors.black,
//   padding: const EdgeInsets.all(5.0),
//   child: Text('Here'),
// ), child: const Text('Here'),
  1. Esto crea dos botones en relieve que tienen el texto «Aquí» y «Aquí», respectivamente.
  2. Para el atributo onPressed , estamos llamando a _sendingMails y _sendingSMS respectivamente de modo que, cuando se presiona el primer botón, la aplicación de correo predeterminada se abre con la ID de correo completada en la sección «Para» y cuando se presiona el segundo botón, se abre la aplicación de mensajería predeterminada. con el número de teléfono completado en la sección «Para».

Código fuente completo:

Dart

import 'package:flutter/material.dart';
// import 'package:flutter/cupertino.dart'; Unused Dependency
import 'package:url_launcher/url_launcher.dart';
 
// app build process is triggered here
void main() => runApp(const MyApp());
 
_sendingMails() async {
  var url = Uri.parse("mailto:feedback@geeksforgeeks.org");
  if (await canLaunchUrl(url)) {
    await launchUrl(url);
  } else {
    throw 'Could not launch $url';
  }
}
 
_sendingSMS() async {
  var url = Uri.parse("sms:966738292");
  if (await canLaunchUrl(url)) {
    await launchUrl(url);
  } else {
    throw 'Could not launch $url';
  }
}
 
class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Geeks for Geeks'),
          backgroundColor: Colors.green,
        ),
        body: SafeArea(
          child: Center(
            child: Column(
              children: [
                Container(
                  height: 200.0,
                ),
                const Text(
                  'Welcome to GFG!',
                  style: TextStyle(
                    fontSize: 35.0,
                    color: Colors.green,
                    fontWeight: FontWeight.bold,
                  ),
                ),
                Container(
                  height: 20.0,
                ),
                const Text(
                  'For any Queries, Mail us',
                  style: TextStyle(
                    fontSize: 18.0,
                    color: Colors.green,
                    //fontWeight: FontWeight.bold,
                  ),
                ),
                Container(
                  height: 10.0,
                ),
                ElevatedButton(
                  onPressed: _sendingMails,
                  style: ButtonStyle(
                    padding:
                        MaterialStateProperty.all(const EdgeInsets.all(5.0)),
                    textStyle: MaterialStateProperty.all(
                      const TextStyle(color: Colors.black),
                    ),
                  ),
                  child: const Text('Here'),
                ), // ElevatedButton
 
                // DEPRECATED
                // RaisedButton(
                //   onPressed: _sendingMails,
                //   child: Text('Here'),
                //   textColor: Colors.black,
                //   padding: const EdgeInsets.all(5.0),
                // ),
                Container(
                  height: 20.0,
                ),
                const Text(
                  'Or Send SMS',
                  style: TextStyle(
                    fontSize: 18.0,
                    color: Colors.green,
                    //fontWeight: FontWeight.bold,
                  ),
                ),
                Container(
                  height: 10.0,
                ),
                ElevatedButton(
                  onPressed: _sendingSMS,
                  style: ButtonStyle(
                    padding:
                        MaterialStateProperty.all(const EdgeInsets.all(5.0)),
                    textStyle: MaterialStateProperty.all(
                      const TextStyle(color: Colors.black),
                    ),
                  ),
                  child: const Text('Here'),
                ), // ElevatedButton
 
                // DEPRECATED
                // RaisedButton(
                //   onPressed: _sendingSMS,
                //   textColor: Colors.black,
                //   padding: const EdgeInsets.all(5.0),
                //   child: Text('Here'),
                // ), child: const Text('Here'),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

Producción:

Publicación traducida automáticamente

Artículo escrito por varshaadhanasekar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *