Xamarin.Essentials: ExploradorXamarin.Essentials: Browser

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.The Browser class enables an application to open a web link in the optimized system preferred browser or the external browser.

Primeros pasosGet started

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.To start using this API, read the getting started guide for Xamarin.Essentials to ensure the library is properly installed and set up in your projects.

Para acceder a la función de Browser, se requiere la siguiente configuración específica para la plataforma.To access the Browser functionality the following platform specific setup is required.

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.If your project's Target Android version is set to Android 11 (R API 30) you must update your Android Manifest with queries that are used with the new package visibility requirements.

Abra el archivo AndroidManifest.xml de la carpeta Propiedades y agregue lo siguiente dentro del nodo manifest:Open the AndroidManifest.xml file under the Properties folder and add the following inside of the manifest node:

<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 BrowserUsing Browser

Agregue una referencia a Xamarin.Essentials en la clase:Add a reference to Xamarin.Essentials in your class:

using Xamarin.Essentials;

La funcionalidad Browser funciona mediante una llamada al método OpenAsync con Uri y BrowserLaunchMode.The Browser functionality works by calling the OpenAsync method with the Uri and 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.This method returns after the browser was launched and not necessarily closed by the user. El resultado bool indica si el inicio ha sido correcto o no.The bool result indicates whether the launching was successful or not.

PersonalizaciónCustomization

Al usar el explorador preferido por el sistema, tiene disponibles varias opciones de personalización para iOS y Android,When using the system preferred browser there are several customization options available for iOS and 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).This includes a TitleMode (Android only), and preferred color options for the Toolbar (iOS and Android) and Controls (iOS only) that appear.

Estas opciones se especifican usando BrowserLaunchOptions al llamar a OpenAsync.These options are specified using BrowserLaunchOptions when calling OpenAsync.

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

Opciones del explorador

Detalles de implementación de la plataformaPlatform Implementation Specifics

El modo de inicio determina cómo se inicia el explorador:The Launch Mode determines how the browser is launched:

Preferencia del sistemaSystem Preferred

Se intenta usar Pestañas personalizadas para cargar el Uri y mantener el reconocimiento de la navegación.Custom Tabs will attempted to be used to load the Uri and keep navigation awareness.

ExternoExternal

Se usará Intent para solicitar que se abra el URI a través del explorador normal del sistema.An Intent will be used to request the Uri be opened through the systems normal browser.

APIAPI

Encuentre más vídeos de Xamarin en Channel 9 y YouTube.Find more Xamarin videos on Channel 9 and YouTube.