Xamarin.Essentials:ブラウザー

Browser クラスを使用すると、最適化されたシステム推奨のブラウザーまたは外部のブラウザーを使って、アプリケーションで Web リンクを開くことができます。

作業開始

この API の使用を始めるには、Xamarin.Essentials の概要ガイドを読み、ライブラリが正しくインストールされてプロジェクトに設定されていることを確認してください。

ブラウザー機能にアクセスするには、次のプラットフォーム固有設定が必要です。

プロジェクトのターゲット Android バージョンが Android 11 (R API 30) に設定される場合、新しいパッケージの可視性要件で使用されるクエリで Android マニフェストを更新する必要があります。

[プロパティ] フォルダーにある AndroidManifest.xml ファイルを開き、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>

ブラウザーの使用

クラスの Xamarin.Essentials への参照を追加します。

using Xamarin.Essentials;

ブラウザー機能を動作させるには、UriBrowserLaunchMode と共に OpenAsync メソッドを呼び出します。


public class BrowserTest
{
    public async Task OpenBrowser(Uri uri)
    {
        try
        {
            await Browser.OpenAsync(uri, BrowserLaunchMode.SystemPreferred);
        }
        catch(Exception ex)
        {
            // An unexpected error occured. No browser may be installed on the device.
        }
    }
}

このメソッドは、ブラウザーが起動した後に返されるもので、必ずしもブラウザーがユーザーによって終了されるわけではありません。

カスタマイズ

システム推奨ブラウザーの使用時、iOS と Android ではカスタマイズ オプションをいくつか利用できます。 たとえば、TitleMode (Android のみ)、Toolbar に推奨される色の選択肢 (iOS と Android)、Controls の表示 (iOS のみ) があります。

このようなオプションは OpenAsync の呼び出し時、BrowserLaunchOptions を使用することで指定されます。

await Browser.OpenAsync(uri, new BrowserLaunchOptions
                {
                    LaunchMode = BrowserLaunchMode.SystemPreferred,
                    TitleMode = BrowserTitleMode.Show,
                    PreferredToolbarColor = Color.AliceBlue,
                    PreferredControlColor = Color.Violet
                });

Browser Options

プラットフォームの実装の詳細

起動モードによってブラウザーを起動する方法が決定されます。

システム推奨

Custom Tabs を使用して URI を読み込み、ナビゲーション認識を保持することが試みられます。

外部

Intent を使用して、システムの通常のブラウザーで URI を開くよう要求します。

API

他の Xamarin ビデオは、Channel 9 および YouTube でご覧いただけます。