File: Browser\BrowserLaunchOptions.shared.cs
Web Access
Project: src\src\Essentials\src\Essentials.csproj (Microsoft.Maui.Essentials)
#nullable enable
using System;
using Microsoft.Maui.Graphics;
 
namespace Microsoft.Maui.ApplicationModel
{
	/// <summary>
	/// Optional setting to open the browser with.
	/// </summary>
	/// <remarks>Not all settings apply to all operating systems. Check documentation for more information.</remarks>
	public class BrowserLaunchOptions
	{
		/// <summary>
		/// Gets or sets the preferred color of the toolbar background of the in-app browser.
		/// </summary>
		/// <remarks>This setting only applies to iOS and Android.</remarks>
		public Color? PreferredToolbarColor { get; set; }
 
		/// <summary>
		/// Gets or sets the preferred color of the controls on the in-app browser.
		/// </summary>
		/// <remarks>This setting only applies to iOS.</remarks>
		public Color? PreferredControlColor { get; set; }
 
		/// <summary>
		/// Gets or sets how the browser should be launched.
		/// </summary>
		/// <remarks>The default value is <see cref="BrowserLaunchMode.SystemPreferred"/>.</remarks>
		public BrowserLaunchMode LaunchMode { get; set; } = BrowserLaunchMode.SystemPreferred;
 
		/// <summary>
		/// Gets or sets the preferred mode for the title display.
		/// </summary>
		/// <remarks>The default value is <see cref="BrowserTitleMode.Default"/>. This setting only applies to Android.</remarks>
		public BrowserTitleMode TitleMode { get; set; } = BrowserTitleMode.Default;
 
		/// <summary>
		/// Gets or sets additional launch flags that may or may not take effect based on the device and <see cref="LaunchMode"/>.
		/// </summary>
		/// <remarks>The default value is <see cref="BrowserLaunchFlags.None"/>. Not all flags work on all platforms, check the flag descriptions.</remarks>
		public BrowserLaunchFlags Flags { get; set; } = BrowserLaunchFlags.None;
 
		internal bool HasFlag(BrowserLaunchFlags flag) => Flags.HasFlag(flag);
	}
 
	/// <summary>
	/// Additional flags that can be set to control how the browser opens.
	/// </summary>
	[Flags]
	public enum BrowserLaunchFlags
	{
		/// <summary>No additional flags. This is the default.</summary>
		None = 0,
 
		/// <summary>Only applicable to Android: launches a new activity adjacent to the current activity if available.</summary>
		LaunchAdjacent = 1,
 
		/// <summary>Only applicable to iOS: launches the browser as a page sheet with the system preferred browser where supported.</summary>
		PresentAsPageSheet = 2,
 
		/// <summary>Only applicable to iOS: launches the browser as a form sheet with the system preferred browser where supported.</summary>
		PresentAsFormSheet = 4
	}
}