カスタムタブは、カスタマイズされたブラウザ エクスペリエンスをアプリ内で直接作成するための優れたオプションですが、1 つに使用できるものではありません。インテント システム上に構築されたカスタムタブは、エンドユーザーの好みのブラウザに送信される、構成可能なオプション リクエストのコレクションです。さまざまなオプションの実装は、各ブラウザによって異なります。カスタムタブ機能が利用できるかどうかは、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 は無視してもかまいません。以前のこのメソッドの呼び出しはすべて優先度が低くなります。