瀏覽器

Browse sample. 流覽範例

本文說明如何使用 .NET 多平臺應用程式 UI (.NET MAUI) IBrowser 介面。 此介面可讓應用程式在系統慣用瀏覽器或外部瀏覽器中開啟網頁連結。

介面的預設實作 IBrowser 可透過 Browser.Default 屬性取得。 IBrowser介面和Browser類別都包含在 命名空間中Microsoft.Maui.ApplicationModel

開始使用

若要存取瀏覽器功能,需要下列平臺特定設定。

如果您的項目目標 Android 版本設定為 Android 11(R API 30)或更高版本,您必須使用使用 Android 套件可見性需求的查詢來更新 Android 指令清單

[平臺/Android/AndroidManifest.xml] 檔案中,於 節點中manifest新增下列queries/intent節點:

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

開啟瀏覽器

使用 和 型別BrowserLaunchMode呼叫 方法Uri,以開啟IBrowser.OpenAsync瀏覽器。 下列程式代碼範例示範如何開啟瀏覽器:

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

此方法會在瀏覽器啟動之後傳回,而不是在使用者關閉瀏覽器之後傳回。 Browser.OpenAsyncbool 回值,指出瀏覽器是否已成功啟動。

自訂

如果您使用系統慣用的瀏覽器,iOS 和 Android 有數個可用的自訂選項。 這些選項包括 TitleMode [僅限 Android] 和 [僅限 iOS] 和 Controls [僅限 iOS] 的色彩Toolbar

當您呼叫 OpenAsync時,請使用 BrowserLaunchOptions 指定這些選項。

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

平台差異

本節說明瀏覽器 API 的平臺特定差異。

決定 BrowserLaunchOptions.LaunchMode 瀏覽器的啟動方式: