From 96af912183b32a60ef476d9048c6dc252a9d8862 Mon Sep 17 00:00:00 2001 From: Gerald Versluis Date: Tue, 15 Nov 2022 21:56:41 +0100 Subject: [PATCH 1/2] Update Essentials Browser API Docs --- .../Microsoft.Maui.Essentials/Browser.xml | 159 ------------------ .../BrowserLaunchFlags.xml | 91 ---------- .../BrowserLaunchMode.xml | 52 ------ .../BrowserLaunchOptions.xml | 124 -------------- .../BrowserTitleMode.xml | 71 -------- .../Browser.netstandard.tvos.watchos.cs | 1 - src/Essentials/src/Browser/Browser.shared.cs | 92 +++++++++- .../src/Browser/BrowserLaunchMode.shared.cs | 10 +- .../Browser/BrowserLaunchOptions.shared.cs | 45 +++-- .../src/Browser/BrowserTitleMode.shared.cs | 13 +- 10 files changed, 135 insertions(+), 523 deletions(-) delete mode 100644 src/Essentials/docs/Microsoft.Maui.Essentials/Browser.xml delete mode 100644 src/Essentials/docs/Microsoft.Maui.Essentials/BrowserLaunchFlags.xml delete mode 100644 src/Essentials/docs/Microsoft.Maui.Essentials/BrowserLaunchMode.xml delete mode 100644 src/Essentials/docs/Microsoft.Maui.Essentials/BrowserLaunchOptions.xml delete mode 100644 src/Essentials/docs/Microsoft.Maui.Essentials/BrowserTitleMode.xml diff --git a/src/Essentials/docs/Microsoft.Maui.Essentials/Browser.xml b/src/Essentials/docs/Microsoft.Maui.Essentials/Browser.xml deleted file mode 100644 index 67b66f3b85d6..000000000000 --- a/src/Essentials/docs/Microsoft.Maui.Essentials/Browser.xml +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Object - - - - Provides a way to display a web page inside an app. - - - - - - - - Method - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Threading.Tasks.Task - - - - - - Uri to launch. - Open the browser to specified uri. - Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. - - - - - - - - Method - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Threading.Tasks.Task - - - - - - Uri to launch. - Open the browser to specified uri. - Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. - - - - - - - - Method - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Threading.Tasks.Task - - - - - - - Uri to launch. - How to launch the browser. - Open the browser to specified uri. - Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. - - - - - - - - Method - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Threading.Tasks.Task - - - - - - - Uri to launch. - Launch options for the browser. - Open the browser to specified uri. - Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. - - - - - - - - Method - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Threading.Tasks.Task - - - - - - - Uri to launch. - How to launch the browser. - Open the browser to specified uri. - Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. - - - - - - - - Method - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Threading.Tasks.Task<System.Boolean> - - - - - - - Uri to launch. - Launch options for the browser. - Open the browser to specified uri. - Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. - - - - - diff --git a/src/Essentials/docs/Microsoft.Maui.Essentials/BrowserLaunchFlags.xml b/src/Essentials/docs/Microsoft.Maui.Essentials/BrowserLaunchFlags.xml deleted file mode 100644 index 9c5a2421a692..000000000000 --- a/src/Essentials/docs/Microsoft.Maui.Essentials/BrowserLaunchFlags.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Enum - - - - System.Flags - - - - Additional flags that can be set to control how the browser opens. - - - - - - - - Field - - Microsoft.Maui.Essentials - 1.0.0.0 - - - Microsoft.Maui.Essentials.BrowserLaunchFlags - - 1 - - On Android to launch the new activity adjacent to the current one if available. - - - - - - - Field - - Microsoft.Maui.Essentials - 1.0.0.0 - - - Microsoft.Maui.Essentials.BrowserLaunchFlags - - 0 - - No additional flags. This is the default. - - - - - - - Field - - Microsoft.Maui.Essentials - 1.0.0.0 - - - Microsoft.Maui.Essentials.BrowserLaunchFlags - - 4 - - On iOS to launch the browser as a form sheet with system preferred browser where supported. - - - - - - - Field - - Microsoft.Maui.Essentials - 1.0.0.0 - - - Microsoft.Maui.Essentials.BrowserLaunchFlags - - 2 - - On iOS to launch the browser as a page sheet with system preferred browser where supported. - - - - diff --git a/src/Essentials/docs/Microsoft.Maui.Essentials/BrowserLaunchMode.xml b/src/Essentials/docs/Microsoft.Maui.Essentials/BrowserLaunchMode.xml deleted file mode 100644 index 2de7a074c114..000000000000 --- a/src/Essentials/docs/Microsoft.Maui.Essentials/BrowserLaunchMode.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Enum - - - Launch type of the browser. - Recommended to use the SystemBrowser as it is the default and falls back to UriLauncher. - - - - - - - Field - - 1.0.0.0 - Microsoft.Maui.Essentials - - - Microsoft.Maui.Essentials.BrowserLaunchMode - - 1 - - Use the default external launcher to open the browser outside of the app. - - - - - - - Field - - 1.0.0.0 - Microsoft.Maui.Essentials - - - Microsoft.Maui.Essentials.BrowserLaunchMode - - 0 - - Launch the optimized system browser and stay inside of your application. (Chrome Custom Tabs and SFSafariViewController). - - - - diff --git a/src/Essentials/docs/Microsoft.Maui.Essentials/BrowserLaunchOptions.xml b/src/Essentials/docs/Microsoft.Maui.Essentials/BrowserLaunchOptions.xml deleted file mode 100644 index 06bb55492020..000000000000 --- a/src/Essentials/docs/Microsoft.Maui.Essentials/BrowserLaunchOptions.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Object - - - - Optional setting to open the browser with. - These settings do not apply to all operation systems. Check documentation for more information. - - - - - - - Constructor - - Microsoft.Maui.Essentials - 1.0.0.0 - - - - Default constructor. - - - - - - - - Property - - Microsoft.Maui.Essentials - 1.0.0.0 - - - Microsoft.Maui.Essentials.BrowserLaunchFlags - - - Additional launch flags that may or may not take effect based on the device and launch mode. - To be added. - To be added. - - - - - - - Property - - Microsoft.Maui.Essentials - 1.0.0.0 - - - Microsoft.Maui.Essentials.BrowserLaunchMode - - - Launch type of the browser. - The launch type. - - - - - - - - Property - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Nullable<System.Drawing.Color> - - - Preferred color of the controls on the browser. - Gets the color for controls. - - - - - - - - Property - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Nullable<System.Drawing.Color> - - - Preferred color of the background toolbar. - Gets the toolbar color. - - - - - - - - Property - - Microsoft.Maui.Essentials - 1.0.0.0 - - - Microsoft.Maui.Essentials.BrowserTitleMode - - - Preferred mode for the title display. - Gets the title display mode. - - - - - diff --git a/src/Essentials/docs/Microsoft.Maui.Essentials/BrowserTitleMode.xml b/src/Essentials/docs/Microsoft.Maui.Essentials/BrowserTitleMode.xml deleted file mode 100644 index 6041f8b1f094..000000000000 --- a/src/Essentials/docs/Microsoft.Maui.Essentials/BrowserTitleMode.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - Microsoft.Maui.Essentials - 1.0.0.0 - - - System.Enum - - - Mode for the title. - - - - - - - - Field - - Microsoft.Maui.Essentials - 1.0.0.0 - - - Microsoft.Maui.Essentials.BrowserTitleMode - - 0 - - Uses the system default showing it. - - - - - - - Field - - Microsoft.Maui.Essentials - 1.0.0.0 - - - Microsoft.Maui.Essentials.BrowserTitleMode - - 2 - - - Hide the title. - - - - - - - - Field - - Microsoft.Maui.Essentials - 1.0.0.0 - - - Microsoft.Maui.Essentials.BrowserTitleMode - - 1 - - Show the title. - - - - diff --git a/src/Essentials/src/Browser/Browser.netstandard.tvos.watchos.cs b/src/Essentials/src/Browser/Browser.netstandard.tvos.watchos.cs index 819aaabdd592..33beb4b247bd 100755 --- a/src/Essentials/src/Browser/Browser.netstandard.tvos.watchos.cs +++ b/src/Essentials/src/Browser/Browser.netstandard.tvos.watchos.cs @@ -4,7 +4,6 @@ namespace Microsoft.Maui.ApplicationModel { - /// partial class BrowserImplementation : IBrowser { public Task OpenAsync(Uri uri, BrowserLaunchOptions options) => diff --git a/src/Essentials/src/Browser/Browser.shared.cs b/src/Essentials/src/Browser/Browser.shared.cs index 1e23bb7856af..42fbdf7b91a9 100755 --- a/src/Essentials/src/Browser/Browser.shared.cs +++ b/src/Essentials/src/Browser/Browser.shared.cs @@ -4,34 +4,76 @@ namespace Microsoft.Maui.ApplicationModel { + /// + /// Provides a way to display a web page inside an app. + /// public interface IBrowser { + /// + /// Open the browser to specified uri. + /// + /// Uri to launch. + /// Launch options for the browser. + /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. Task OpenAsync(Uri uri, BrowserLaunchOptions options); } - /// + /// + /// Provides a way to display a web page inside an app. + /// public static class Browser { - /// + /// + /// Open the browser to specified uri. + /// + /// Uri to launch. + /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(string uri) => Default.OpenAsync(uri); - /// + /// + /// Open the browser to specified uri. + /// + /// Uri to launch. + /// How to launch the browser. + /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(string uri, BrowserLaunchMode launchMode) => Default.OpenAsync(uri, launchMode); - /// + /// + /// Open the browser to specified uri. + /// + /// Uri to launch. + /// Launch options for the browser. + /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(string uri, BrowserLaunchOptions options) => Default.OpenAsync(uri, options); - /// + /// + /// Open the browser to specified uri. + /// + /// Uri to launch. + /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(Uri uri) => Default.OpenAsync(uri); - /// + /// + /// Open the browser to specified uri. + /// + /// Uri to launch. + /// How to launch the browser. + /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(Uri uri, BrowserLaunchMode launchMode) => Default.OpenAsync(uri, launchMode); - /// + /// + /// Open the browser to specified uri. + /// + /// Uri to launch. + /// Launch options for the browser. + /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(Uri uri, BrowserLaunchOptions options) => Default.OpenAsync(uri, options); static IBrowser? defaultImplementation; + /// + /// Provides the default implementation for static usage of this API. + /// public static IBrowser Default => defaultImplementation ??= new BrowserImplementation(); @@ -39,20 +81,56 @@ internal static void SetDefault(IBrowser? implementation) => defaultImplementation = implementation; } + /// + /// This class contains static extension methods for use with . + /// public static class BrowserExtensions { + /// + /// Open the browser to specified uri. + /// + /// The instance to invoke this method on. + /// Uri to launch. + /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(this IBrowser browser, string uri) => browser.OpenAsync(new Uri(uri), new BrowserLaunchOptions()); + /// + /// Open the browser to specified uri. + /// + /// The instance to invoke this method on. + /// Uri to launch. + /// How to launch the browser. + /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(this IBrowser browser, string uri, BrowserLaunchMode launchMode) => browser.OpenAsync(new Uri(uri), new BrowserLaunchOptions { LaunchMode = launchMode }); + /// + /// Open the browser to specified uri. + /// + /// The instance to invoke this method on. + /// Uri to launch. + /// Launch options for the browser. + /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(this IBrowser browser, string uri, BrowserLaunchOptions options) => browser.OpenAsync(new Uri(uri), options); + /// + /// Open the browser to specified uri. + /// + /// The instance to invoke this method on. + /// Uri to launch. + /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(this IBrowser browser, Uri uri) => browser.OpenAsync(uri, new BrowserLaunchOptions()); + /// + /// Open the browser to specified uri. + /// + /// The instance to invoke this method on. + /// Uri to launch. + /// How to launch the browser. + /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(this IBrowser browser, Uri uri, BrowserLaunchMode launchMode) => browser.OpenAsync(uri, new BrowserLaunchOptions { LaunchMode = launchMode }); } diff --git a/src/Essentials/src/Browser/BrowserLaunchMode.shared.cs b/src/Essentials/src/Browser/BrowserLaunchMode.shared.cs index c9ca6e257d6c..62a56cc06490 100755 --- a/src/Essentials/src/Browser/BrowserLaunchMode.shared.cs +++ b/src/Essentials/src/Browser/BrowserLaunchMode.shared.cs @@ -1,12 +1,16 @@ #nullable enable namespace Microsoft.Maui.ApplicationModel { - /// + /// + /// Launch type of the browser. + /// + /// It's recommended to use the as it is the default and gracefully falls back if needed. public enum BrowserLaunchMode { - /// + /// Launch the optimized system browser and stay inside of your application. Chrome Custom Tabs on Android and SFSafariViewController on iOS. SystemPreferred = 0, - /// + + /// Use the default external launcher to open the browser outside of the app. External = 1 } } diff --git a/src/Essentials/src/Browser/BrowserLaunchOptions.shared.cs b/src/Essentials/src/Browser/BrowserLaunchOptions.shared.cs index 672d8b4e61ab..7fb06effd154 100755 --- a/src/Essentials/src/Browser/BrowserLaunchOptions.shared.cs +++ b/src/Essentials/src/Browser/BrowserLaunchOptions.shared.cs @@ -4,38 +4,61 @@ namespace Microsoft.Maui.ApplicationModel { - /// + /// + /// Optional setting to open the browser with. + /// + /// Not all settings apply to all operating systems. Check documentation for more information. public class BrowserLaunchOptions { - /// + /// + /// Gets or sets the preferred color of the toolbar background of the in-app browser. + /// + /// This setting only applies to iOS and Android. public Color? PreferredToolbarColor { get; set; } - /// + /// + /// Gets or sets the preferred color of the controls on the in-app browser. + /// + /// This setting only applies to iOS. public Color? PreferredControlColor { get; set; } - /// + /// + /// Gets or sets how the browser should be launched. + /// + /// The default value is . public BrowserLaunchMode LaunchMode { get; set; } = BrowserLaunchMode.SystemPreferred; - /// + /// + /// Gets or sets the preferred mode for the title display. + /// + /// The default value is . This setting only applies to Android. public BrowserTitleMode TitleMode { get; set; } = BrowserTitleMode.Default; - /// + /// + /// Gets or sets additional launch flags that may or may not take effect based on the device and . + /// + /// The default value is . Not all flags work on all platforms, check the flag descriptions. public BrowserLaunchFlags Flags { get; set; } = BrowserLaunchFlags.None; internal bool HasFlag(BrowserLaunchFlags flag) => Flags.HasFlag(flag); } - /// + /// + /// Additional flags that can be set to control how the browser opens. + /// [Flags] public enum BrowserLaunchFlags { - /// + /// No additional flags. This is the default. None = 0, - /// + + /// Only applicable to Android: launches a new activity adjacent to the current activity if available. LaunchAdjacent = 1, - /// + + /// Only applicable iOS: launches the browser as a page sheet with the system preferred browser where supported. PresentAsPageSheet = 2, - /// + + /// Only applicable to iOS: launches the browser as a form sheet with the system preferred browser where supported. PresentAsFormSheet = 4 } } diff --git a/src/Essentials/src/Browser/BrowserTitleMode.shared.cs b/src/Essentials/src/Browser/BrowserTitleMode.shared.cs index 38febc41d83a..04d322f9703e 100755 --- a/src/Essentials/src/Browser/BrowserTitleMode.shared.cs +++ b/src/Essentials/src/Browser/BrowserTitleMode.shared.cs @@ -1,14 +1,19 @@ #nullable enable namespace Microsoft.Maui.ApplicationModel { - /// + /// + /// Mode for the in-app browser title. + /// + /// These values only apply to Android. public enum BrowserTitleMode { - /// + /// Uses the system default. Default = 0, - /// + + /// Show the title. Show = 1, - /// + + /// Hide the title. Hide = 2 } } From 3ed75102a98684740f27ce404c20db71cd27e4c8 Mon Sep 17 00:00:00 2001 From: Gerald Versluis Date: Thu, 17 Nov 2022 09:45:53 +0100 Subject: [PATCH 2/2] Apply suggestions from code review All the URI! Co-authored-by: E.Z. Hart --- src/Essentials/src/Browser/Browser.shared.cs | 48 +++++++++---------- .../Browser/BrowserLaunchOptions.shared.cs | 4 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/Essentials/src/Browser/Browser.shared.cs b/src/Essentials/src/Browser/Browser.shared.cs index 42fbdf7b91a9..8f4e09ba3268 100755 --- a/src/Essentials/src/Browser/Browser.shared.cs +++ b/src/Essentials/src/Browser/Browser.shared.cs @@ -10,9 +10,9 @@ namespace Microsoft.Maui.ApplicationModel public interface IBrowser { /// - /// Open the browser to specified uri. + /// Open the browser to specified URI. /// - /// Uri to launch. + /// URI to open. /// Launch options for the browser. /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. Task OpenAsync(Uri uri, BrowserLaunchOptions options); @@ -24,47 +24,47 @@ public interface IBrowser public static class Browser { /// - /// Open the browser to specified uri. + /// Open the browser to specified URI. /// - /// Uri to launch. + /// URI to open. /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(string uri) => Default.OpenAsync(uri); /// - /// Open the browser to specified uri. + /// Open the browser to specified URI. /// - /// Uri to launch. + /// URI to open. /// How to launch the browser. /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(string uri, BrowserLaunchMode launchMode) => Default.OpenAsync(uri, launchMode); /// - /// Open the browser to specified uri. + /// Open the browser to specified URI. /// - /// Uri to launch. + /// URI to open. /// Launch options for the browser. /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(string uri, BrowserLaunchOptions options) => Default.OpenAsync(uri, options); /// - /// Open the browser to specified uri. + /// Open the browser to specified URI. /// - /// Uri to launch. + /// URI to open. /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(Uri uri) => Default.OpenAsync(uri); /// - /// Open the browser to specified uri. + /// Open the browser to specified URI. /// - /// Uri to launch. + /// URI to open. /// How to launch the browser. /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(Uri uri, BrowserLaunchMode launchMode) => Default.OpenAsync(uri, launchMode); /// - /// Open the browser to specified uri. + /// Open the browser to specified URI. /// - /// Uri to launch. + /// URI to open. /// Launch options for the browser. /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(Uri uri, BrowserLaunchOptions options) => Default.OpenAsync(uri, options); @@ -87,48 +87,48 @@ internal static void SetDefault(IBrowser? implementation) => public static class BrowserExtensions { /// - /// Open the browser to specified uri. + /// Open the browser to specified URI. /// /// The instance to invoke this method on. - /// Uri to launch. + /// URI to open. /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(this IBrowser browser, string uri) => browser.OpenAsync(new Uri(uri), new BrowserLaunchOptions()); /// - /// Open the browser to specified uri. + /// Open the browser to specified URI. /// /// The instance to invoke this method on. - /// Uri to launch. + /// URI to open. /// How to launch the browser. /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(this IBrowser browser, string uri, BrowserLaunchMode launchMode) => browser.OpenAsync(new Uri(uri), new BrowserLaunchOptions { LaunchMode = launchMode }); /// - /// Open the browser to specified uri. + /// Open the browser to specified URI. /// /// The instance to invoke this method on. - /// Uri to launch. + /// URI to open. /// Launch options for the browser. /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(this IBrowser browser, string uri, BrowserLaunchOptions options) => browser.OpenAsync(new Uri(uri), options); /// - /// Open the browser to specified uri. + /// Open the browser to specified URI. /// /// The instance to invoke this method on. - /// Uri to launch. + /// URI to open. /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(this IBrowser browser, Uri uri) => browser.OpenAsync(uri, new BrowserLaunchOptions()); /// - /// Open the browser to specified uri. + /// Open the browser to specified URI. /// /// The instance to invoke this method on. - /// Uri to launch. + /// URI to open. /// How to launch the browser. /// Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. public static Task OpenAsync(this IBrowser browser, Uri uri, BrowserLaunchMode launchMode) => diff --git a/src/Essentials/src/Browser/BrowserLaunchOptions.shared.cs b/src/Essentials/src/Browser/BrowserLaunchOptions.shared.cs index 7fb06effd154..44e254fd11b3 100755 --- a/src/Essentials/src/Browser/BrowserLaunchOptions.shared.cs +++ b/src/Essentials/src/Browser/BrowserLaunchOptions.shared.cs @@ -55,10 +55,10 @@ public enum BrowserLaunchFlags /// Only applicable to Android: launches a new activity adjacent to the current activity if available. LaunchAdjacent = 1, - /// Only applicable iOS: launches the browser as a page sheet with the system preferred browser where supported. + /// Only applicable to iOS: launches the browser as a page sheet with the system preferred browser where supported. PresentAsPageSheet = 2, - /// Only applicable to iOS: launches the browser as a form sheet with the system preferred browser where supported. + /// Only applicable to iOS: launches the browser as a form sheet with the system preferred browser where supported. PresentAsFormSheet = 4 } }