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.
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
});
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.