ブラウザー
この記事では、.NET マルチプラットフォーム アプリ UI (.NET MAUI) IBrowser インターフェイスを使用する方法について説明します。 このインターフェイスにより、アプリケーションはシステム優先ブラウザーまたは外部ブラウザーで Web リンクを開くことができます。
IBrowser
インターフェイスの既定の実装は、Browser.Default プロパティを通じて使用できます。 IBrowser
インターフェイスと Browser
クラスは、どちらも Microsoft.Maui.ApplicationModel
名前空間に含まれています。
作業の開始
ブラウザーの機能にアクセスするには、次のプラットフォーム固有のセットアップが必要です。
プロジェクトの対象の Android バージョンが Android 11 (R API 30) 以降に設定されている場合は、Android のパッケージの可視性要件を使用するクエリで Android マニフェストを更新する必要があります。
Platforms/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>
ブラウザーを開く
ブラウザーは、Uri と BrowserLaunchMode 型で 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.OpenAsync
は、ブラウザーが正常に起動されたかどうかを示す bool
値を返します。
カスタマイズ
システム優先ブラウザーを使用している場合、iOS と Android で使用できるカスタマイズ オプションがいくつかあります。 これらのオプションには、TitleMode
(Android のみ) と、Toolbar
(iOS と Android)、Controls
(iOS のみ) で表示される優先色が含まれます。
これらのオプションは、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 はブラウザーの起動方法を決定します。
-
カスタム タブを使用して、URI を読み込み、ナビゲーションの認識を維持します。
-
Intent
を使用して、システムの通常のブラウザーで URI を開くよう要求します。
.NET MAUI