カスタムタブは、アプリ内で直接カスタマイズされたブラウザ エクスペリエンスを作成するのに適したオプションですが、単一のものではありません。インテント システム上に構築されたカスタムタブは、エンドユーザーが指定したブラウザに送信される、構成可能なオプション リクエストの集合です。さまざまなオプションを実装するかどうかは、各ブラウザに委ねられています。カスタムタブの機能の提供状況は、実装の違いにより Android ブラウザによって異なる場合があります。
以下に、Android エコシステムの一部のブラウザの比較を示します。Android のほとんどのブラウザは、ある程度のサポートを提供しています。これらの表は、すべてを網羅するものではありませんが、提供されるサポートのレベルを示すことを目的としています。お客様のアプリを使用するユーザーのデフォルト ブラウザを調査し、防御的なコーディングを行う必要があります。
CustomTabsIntent.Builder
CustomTabsIntent.Builder
はカスタムタブを作成します。カスタムタブを構成する方法はいくつかあります。以下に、組み込みのさまざまな方法を挙げます。これらの方法を使用すると、カスタムタブをアプリと可能な限りシームレスに統合できます。
addDefaultShareMenuItem()
addDefaultShareMenuItem() は、カスタムタブ ツールバーにデフォルトの共有ボタンを追加します。これにより、ユーザーはデバイス上のさまざまなアプリから現在のウェブページを共有できます。
addMenuItem()
メニュー項目を追加します。
addToolbarItem()
カスタムタブに操作ボタンを追加します。この方法で複数のボタンを追加できます。
enableUrlBarHiding()
ユーザーがページを下にスクロールすると URL バーを非表示にします。
setActionButton()
ツールバーに表示されるアクション ボタンを設定します。デフォルトの色付け動作が適用されます。
setCloseButtonIcon()
ツールバーに表示されるカスタム終了ボタンを設定します。
setCloseButtonPosition()
カスタムタブの閉じるボタン アイコンを設定します。
setColorScheme()
[カスタム] タブで、ユーザー インターフェースに適用する配色を設定します。
setColorSchemeParams()
[カスタム] タブで、ユーザー インターフェースに適用する配色を設定します。
setDefaultColorSchemeParams()
指定されたカラーパターンに CustomTabColorSchemeParams()
を設定します。これにより、ライトモードとダークモードの 2 つの異なるツールバーの色を指定できます。
setDefaultShareMenuItemEnabled()
デフォルトの共有アイテムをメニューに追加するかどうかを設定します。
setExitAnimations()
終了アニメーションを設定します。
setInitialActivityHeightPx()
カスタムタブ アクティビティの初期の高さをピクセル単位で設定し、デフォルトのサイズ変更動作を指定します。カスタムタブはボトムシートとして動作します。これは、部分的なカスタムタブとも呼ばれます。
setNavigationBarColor()
ナビゲーション バーの色を設定します。L より前の API バージョンには影響しません。
setNavigationBarDividerColor()
setSecondaryToolbarColor()
セカンダリ ツールバーの色を設定します。
setShareState()
カスタムタブに適用する共有状態を設定します。
setShowTitle()
カスタムタブにタイトルを表示するかどうかを設定します。
setStartAnimations()
開始アニメーションを設定します。
setToolbarColor()
ツールバーの色を設定します。Android L 以降では、この色はステータスバーにも適用されます。
setToolbarCornerRadiusDp()
ツールバーの上隅の半径を dp 単位で設定します。
setUrlBarHidingEnabled()
ユーザーがページを下にスクロールしたときに URL バーを非表示にするかどうかを設定します。
CustomTabsClient
CustomTabsClient
は、CustomTabsService
と通信し、そこから CustomTabsSession
を作成するオプションのクラスです。
warmup()
ブラウザのプロセスをウォームアップします。
CustomTabsSession
CustomTabsSession
は、CustomTabsIntent.Builder()
のインスタンスに指定できるオプションのクラスです。このクラスを使用すると、カスタムタブとの通信を処理できます。
setEngagementSignalsCallback()
タブ内のウェブページに対するユーザーのエンゲージメントに関連するイベントのコールバックを受け取るように EngagementSignalsCallback
を設定します。
isEngagementSignalsApiAvailable()
Engagement Signals API が利用可能かどうかを返します。Engagement Signals API の提供状況は、ランタイムで変更される場合があります。
mayLaunchUrl()
今後、URL に移動する可能性が高いことをブラウザに伝えます。最も可能性の高い URL を最初に指定する必要があります。必要に応じて、他の可能性のある URL のリストを指定することもできます。これらは最初の原因よりも発生可能性が低いとみなされ、優先度が低い順に並べ替える必要があります。これらの追加の URL は無視される場合があります。このメソッドに対する以前の呼び出しはすべて優先度が下がります。