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;
ブラウザー機能を動作させるには、Uri
、BrowserLaunchMode
と共に 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
});
プラットフォームの実装の詳細
起動モードによってブラウザーを起動する方法が決定されます。
システム推奨
Custom Tabs を使用して URI を読み込み、ナビゲーション認識を保持することが試みられます。
外部
Intent
を使用して、システムの通常のブラウザーで URI を開くよう要求します。