Browser
En este artículo se describe cómo puedes usar la interfaz IBrowser de .NET Multi-platform App UI (.NET MAUI). Esta interfaz permite a una aplicación abrir un vínculo web en el explorador preferido del sistema o en el explorador externo.
La implementación predeterminada de la interfaz IBrowser
está disponible a través de la propiedad Browser.Default. La interfaz IBrowser
y la clase Browser
están contenidas en el espacio de nombres Microsoft.Maui.ApplicationModel
.
Introducción
Para acceder a la función de explorador, 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) o superior, debes actualizar el manifiesto de Android con las consultas que se usan con los requisitos de visibilidad de los paquetes de Android.
En el archivo Platforms/Android/AndroidManifest.xml, agrega los nodos queries/intent
siguientes en el 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>
Abre el explorador
El explorador se abre llamando al método IBrowser.OpenAsync con el Uri y el tipo de BrowserLaunchMode. El siguiente ejemplo de código muestra la apertura del explorador:
private async void BrowserOpen_Clicked(object sender, EventArgs e)
{
try
{
Uri uri = new Uri("https://www.microsoft.com");
await Browser.Default.OpenAsync(uri, BrowserLaunchMode.SystemPreferred);
}
catch (Exception ex)
{
// An unexpected error occurred. No browser may be installed on the device.
}
}
Este método devuelve un valor una vez que se ha iniciado el explorador, no después de que el usuario lo haya cerrado. Browser.OpenAsync
devuelve un valor bool
para indicar si el explorador se ha iniciado de manera correcta.
Personalización
Si usas el explorador preferido por el sistema, tiene disponibles varias opciones de personalización para iOS y Android, Estas incluyen un TitleMode
(solo Android) y el color preferido para los Toolbar
(iOS y Android) y Controls
(solo iOS) que aparecen.
Especifica estas opciones mediante BrowserLaunchOptions al llamar a OpenAsync
.
private async void BrowserCustomOpen_Clicked(object sender, EventArgs e)
{
try
{
Uri uri = new Uri("https://www.microsoft.com");
BrowserLaunchOptions options = new BrowserLaunchOptions()
{
LaunchMode = BrowserLaunchMode.SystemPreferred,
TitleMode = BrowserTitleMode.Show,
PreferredToolbarColor = Colors.Violet,
PreferredControlColor = Colors.SandyBrown
};
await Browser.Default.OpenAsync(uri, options);
}
catch (Exception ex)
{
// An unexpected error occurred. No browser may be installed on the device.
}
}
Diferencias entre plataformas
En esta sección se describen las diferencias específicas de la plataforma con la API del explorador.
El BrowserLaunchOptions.LaunchMode determina cómo se inicia el explorador:
-
Se usan Pestañas personalizadas para cargar el URI y mantener el reconocimiento de la navegación.
-
Se usa
Intent
para solicitar que se abra el URI a través del explorador normal del sistema.