Xamarin.Essentials: Explorador

La clase Browser permite que una aplicación abra un vínculo web en el explorador optimizado preferido del sistema o en el explorador externo.

Primeros pasos

Para empezar a usar esta API, lea la guía de introducción para Xamarin.Essentials con el fin de asegurarse de que la biblioteca está correctamente instalada y configurada en los proyectos.

Para acceder a la función de Browser, se requiere la siguiente configuración específica para la plataforma.

Si la versión de Android de destino del proyecto se establece en Android 11 (R API 30) , debe actualizar el manifiesto de Android con las consultas que se usan con los nuevos requisitos de visibilidad de los paquetes.

Abra el archivo AndroidManifest.xml de la carpeta Propiedades y agregue lo siguiente dentro del nodo manifest:

<queries>
  <intent>
    <action android:name="android.intent.action.VIEW" />
    <data android:scheme="http"/>
  </intent>
  <intent>
    <action android:name="android.intent.action.VIEW" />
    <data android:scheme="https"/>
  </intent>
</queries>

Uso de Browser

Agregue una referencia a Xamarin.Essentials en la clase:

using Xamarin.Essentials;

La funcionalidad Browser funciona mediante una llamada al método OpenAsync con Uri y BrowserLaunchMode.


public class BrowserTest
{
    public async Task OpenBrowser(Uri uri)
    {
        try
        {
            await Browser.OpenAsync(uri, BrowserLaunchMode.SystemPreferred);
        }
        catch(Exception ex)
        {
            // An unexpected error occured. No browser may be installed on the device.
        }
    }
}

Este método devuelve un valor después de que el usuario inicie el explorador, a veces sin que tenga que llegar a cerrarlo. El resultado bool indica si el inicio ha sido correcto o no.

Personalización

Al usar el explorador preferido por el sistema, tiene disponibles varias opciones de personalización para iOS y Android, por ejemplo, TitleMode (solo en Android), preferencias para las opciones de color para la Toolbar (en iOS y Android) y Controls que se muestran (solo en iOS).

Estas opciones se especifican usando BrowserLaunchOptions al llamar a OpenAsync.

await Browser.OpenAsync(uri, new BrowserLaunchOptions
                {
                    LaunchMode = BrowserLaunchMode.SystemPreferred,
                    TitleMode = BrowserTitleMode.Show,
                    PreferredToolbarColor = Color.AliceBlue,
                    PreferredControlColor = Color.Violet
                });

Browser Options

Detalles de implementación de la plataforma

El modo de inicio determina cómo se inicia el explorador:

Preferencia del sistema

Se intenta usar Pestañas personalizadas para cargar el Uri y mantener el reconocimiento de la navegación.

Externo

Se usará Intent para solicitar que se abra el URI a través del explorador normal del sistema.

API

Encuentre más vídeos de Xamarin en Channel 9 y YouTube.