Trabajando con conectividad en Xamarin Forms
Me imagino que en algún momento has pasado por la situación en la que estas en una App y resulta que perdiste la conexión a Internet y te quedas sin saber que pasó ya que no recibiste ningun tipo aviso 🤷♀. .. Y es de mal gusto ya que como usuarios no sabemos lo que está sucediendo y simplemente creemos que la aplicación dejó de funcionar 😐. Para evitar esto, como desarrolladores es muy importante manejar los estados de conexión de nuestras aplicaciones ya que en base a esto podemos tomar decisiones, por ejemplo sobre que mostrar o hacer en nuestra App cuando se detecta un estado determinado y lo más importante es que al identificar estos cambios podemos mantener a nuestros usuarios informados sobre lo que sucede con su conectividad, ¡Haciendo que su experiencia sea más placentera! 😎
¡En este artículo aprenderemos como hacerlo usando una de las API que Xamarin Essentials nos brinda! Esta explicación se dividirá en los siguientes puntos:
➖ Configuración de plataforma
➖ Estados de red
➖ Conexiones de perfiles
➖ Eventos
Configuración de plataforma
Para comenzar necesitas tener acceso al permiso de AccessNetworkState, para hacerlo solo tienes que realizar la siguiente implementación para Android. (Otras plataformas no lo necesitan).
Para implementarlo tienes tres opciones:
Primera opción: En tu carpeta de Propiedades ubica el archivo AssemblyInfo.cs y agrega la siguiente línea de código bajo los permisos ya agregados de manera predeterminada.
Segunda opción: En tu AndroidManifest.xml agrega el siguiente código.
Tercera opción: Haz clic derecho en tu proyecto de Android ➡ Luego clic en Opciones ➡ Aplicaciones de Android ➡ Aquí verás los permisos que ya tiene la App busca AccessNetworkState y agrégalo!
¡Empecemos!
Xamarin Essential nos trae la clase Connectivity la cual nos permite conocer los cambios de red del dispositivo.
Get Leomaris Reyes’s stories in your inbox
Join Medium for free to get updates from this writer.
Podemos obtener los siguientes estados de red:
Entonces, para obtener el estado actual del acceso a la red solo tienes que hacer lo siguiente:
Y luego puede verificar el estado de la conexión utilizando cualquiera de las cinco categorías mencionadas anteriormente:
📒 Es importante tener en cuenta que es posible que NetworkAccess notifique que tenemos Internet, pero el acceso completo a la web no está disponible. Debido a cómo funciona la conectividad en cada plataforma, solo puede garantizar que haya una conexión disponible.
También puedes verificar el tipo de perfil de conexión que está utilizando actualmente el dispositivo. Esto es muy importante ya que el resultado puede ayudarnos a tomar decisiones sobre que hacer o no en nuestra App.
Dichas conexiones de perfil son las siguientes:
Para usarlo solo tienes que agregar el siguiente código:
⚠ No olvides agregar el using System.Linq para poder usar Contains() sin problemas! 😋
Manejo de eventos
Finalmente, cuando cambia el perfil de conexión o el acceso a la red, ¡Puedes manejarlo con un evento!
💡 Algunos tips!
📒 Trata siempre de mantener al usuario informado visualmente sobre el estado de su conexión, esto lo ayudará a comprender que no hay problemas en la Aplicación porque no realizó una determinada acción. (UI / UX). Te dejo el siguiente link para que puedas tomar ideas! https://dribbble.com/shots/8226533-No-Internet-Connection
📒 Las conexiones de perfil son muy importantes porque gracias a ellas puedes identificar y tomar decisiones de hacer o no hacer alguna acción en tu aplicación, Por ejemplo: Quisiera que mi App solo descargue archivos cuando tengo el Wifi activado.
📒 ¡Administra datos almacenados en caché para que cuando no haya conexión, el usuario se mantenga feliz e informado! (Por ejemplo: Usar una base de datos local como Realm o SQLite o usar alguna librería de almacenamiento en caché)
¡Listo, a partir de ahora puedes gestionar tus conexiones! 😎
Artículo en inglés: https://askxammy.com/working-with-connectivity-in-xamarin-forms/
¡Gracias por leer mi artículo! 💚💕
Referencias:








