Android カスタムタブの概要
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
カスタムタブは Android ブラウザの機能で、アプリ デベロッパーがアプリ内に直接カスタマイズされたブラウザ エクスペリエンスを追加できるようにします。
ウェブ コンテンツの読み込みは、スマートフォンの初期の頃からモバイルアプリの一部でしたが、古いオプションはデベロッパーにとって課題となる可能性があります。実際のブラウザを起動することは、ユーザーにとって負荷の高いコンテキスト スイッチであり、カスタマイズできません。一方、WebView はウェブ プラットフォームのすべての機能をサポートしていないため、ブラウザと状態を共有せず、メンテナンス オーバーヘッドが増加します。
カスタムタブを使用すると、ユーザーはブラウジング中にアプリ内に留まることができるため、エンゲージメントが向上し、ユーザーがアプリを放棄するリスクが軽減されます。カスタムタブは、ユーザーが選択したブラウザから直接提供され、そのブラウザの状態と機能を自動的に共有します。リクエスト、権限の付与、Cookie ストアを管理するためにカスタム コードを記述する必要はありません。
カスタムタブでできること
カスタムタブを使用すると、ユーザーが使用しているブラウザで動作するレンダリング エンジンでウェブ コンテンツが読み込まれます。すべての API やウェブ プラットフォーム機能は、カスタムタブで利用できます。ブラウジング セッション、保存したパスワード、お支払い方法、住所は、これまでどおりすべて表示されます。
カスタムタブでカスタマイズできる内容
かなりあります。カスタムタブを使用すると、ブラウザの Chrome とユーザー エクスペリエンスをきめ細かく制御できます。アプリ内で、インテントを使用してカスタムタブを起動します。このインテントを呼び出すときに、CustomTabIntent にさまざまな属性を追加して、目的のエクスペリエンスを実現できます。追加できるカスタマイズの例を次に示します。
- アプリの他の部分と一致するカスタムの開始アニメーションと終了アニメーション
- アプリのブランディングに合わせてツールバーの色を変更する
- ライトモードとダークモードを切り替えてもアプリの色が維持される
- ブラウザのツールバーとメニューへのカスタム アクションとエントリ
- カスタムタブの起動時の高さを制御し、ウェブストアでの操作中に動画をストリーミングするなどの機能を有効にします。
また、ユーザーはカスタムタブを最小化して基盤となるアプリを操作し、進行状況を失うことなくいつでも復元してジャーニーを再開できます。これにより、ユーザーはカスタムタブを閉じる代わりに、ウェブとネイティブ アプリの間でシームレスにマルチタスクを行うことができます。この機能は、カスタムタブでデフォルトで有効になっています。
ただし、これはすべてではありません。カスタムタブは非常に強力で、現在も積極的に開発されています。各ブラウザは、これらの機能が利用可能になり次第、サポートを追加する必要があります。ほとんどのブラウザで何らかのレベルでサポートされていますが、ユーザーのブラウザで利用できる機能と利用できない機能があることを理解しておくことが重要です。一般的な Android ブラウザで利用できるさまざまな機能については、機能の比較表をご覧ください。
GitHub のサンプルで、この機能を今すぐテストできます。
カスタムタブはどのような場合に使用すればよいですか?
ウェブ コンテンツを読み込む方法に「正しい」方法はありません。状況によっては、WebView が適切なテクノロジーになります。たとえば、アプリ内で独自のコンテンツのみをホストしている場合や、アプリから直接 JavaScript を挿入する必要がある場合などです。アプリがドメイン外の URL にユーザーを誘導する場合は、カスタムタブの組み込みの共有状態が適している可能性があります。カスタムタブのその他のメリットには、次のようなものがあります。
- セキュリティ: カスタムタブは Google のセーフ ブラウジングを使用して、危険なサイトからユーザーとデバイスを保護します。
- パフォーマンスの最適化:
- アプリケーションからリソースを奪うことなく、バックグラウンドでブラウザを事前にウォームアップする。
- URL を事前に読み込むことで、ページの読み込み時間を短縮します。
- ライフサイクル管理: カスタムタブを起動するアプリは、タブの使用中にシステムによって強制終了されることはありません。カスタムタブの重要度がフォアグラウンド レベルに引き上げられます。
- 共有 Cookie ジャーと権限モデルにより、ユーザーはすでに接続しているサイトにログインしたり、すでに付与した権限を再付与したりする必要がなくなります。
- フォームの入力を効率化するための自動入力などのブラウザ機能は、すぐに利用できます。
- ユーザーは、統合された戻るボタンを使用してアプリに戻ることができます。
カスタムタブと Trusted Web Activity
Trusted Web Activity はカスタムタブ プロトコルを拡張し、そのメリットのほとんどを共有します。ただし、カスタマイズされた UI を提供するのではなく、デベロッパーは UI なしでブラウザタブを開くことができます。独自の Android アプリ内で独自のプログレッシブ ウェブアプリを全画面表示したいデベロッパーにおすすめです。
カスタムタブはどこで利用できますか?
カスタムタブは、Android プラットフォーム上のブラウザでサポートされている機能です。この機能は、Chrome バージョン 45 で最初に導入されました。このプロトコルは、ほとんどの Android ブラウザでサポートされています。
このプロジェクトに関するフィードバック、質問、提案をお待ちしております。crbug.com で問題を報告し、Twitter の @ChromiumDev で質問をお寄せください。
詳細
ご不明な点がございましたら、StackOverflow の chrome-custom-tabs タグをご覧ください。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-27 UTC。"],[],[],null,["# Overview of Android Custom Tabs\n\nCustom Tabs are a feature in Android browsers that gives app developers\na way to add a customized browser experience directly within their app.\n\nLoading web content has been a part of mobile apps since the early days of\nsmartphones, but older options can present challenges for developers. Launching\nthe actual browser is a heavy context switch for users that isn't customizable,\nwhile WebViews [don't support](https://research.google/pubs/pub46739/) all features of the web platform, don't share\nstate with the browser and add maintenance overhead.\n\nCustom Tabs lets users remain within the app while browsing, increasing\nengagement and reducing the risk of users abandoning the app. Custom Tabs are\npowered directly by the user's preferred browser and automatically share the\nstate and features offered by it. You don't need to write custom code to manage\nrequests, permission grants, or cookie stores.\n\nWhat can Custom Tabs do?\n------------------------\n\nBy using a Custom Tab, your web content loads in whatever rendering engine\npowers your user's preferred browser. Any API or web platform feature is\navailable there, and is available in your Custom Tab. Their browsing session,\nsaved passwords, payment methods, and addresses all show up just like they\nare accustomed to already.\n\nWhat can I customize in a Custom Tab?\n-------------------------------------\n\nQuite a bit! Custom Tabs give you fine grained control over a lot of the browser\nchrome and user experience. Within your app, you launch a Custom Tab using an\n[Intent](https://developer.android.com/guide/components/intents-filters). When this Intent is called, you can add a number of attributes to\nthe [CustomTabIntent](https://developer.android.com/reference/androidx/browser/customtabs/CustomTabsIntent) to get the exact experience you want. Some\ncustomizations that you can add are listed here:\n\n- Custom entrance and exit animations to match the rest of your app\n- Modifing the toolbar color to match your app's branding\n- Color consistency that can stay with your app, even if they switch between light and dark themes\n- Custom actions and entries to the browser's toolbar, and menus\n- Control the launch height of the Custom Tab, enabling things like streaming your videos while interacting with your web store\n\nIn addition, users can minimize a Custom Tab to interact with the underlying\napp, and restore it at any time without losing any progress to resume their\njourney. This gives users an alternative to closing the Custom Tab so they can\nseamlessly multitask between the web and the native app. The feature is\nenabled by default for Custom Tabs.\n\nThat is far from everything. Custom Tabs are very powerful, and under active\ndevelopment. Each browser needs to add support for these features as they become\navailable. While nearly all have some level of support, it is important to know\nwhat may or may not be available in your user's browsers. Refer to the\n[feature comparison table](/docs/android/custom-tabs/browser-support) to quickly\ncheck the availability of the different features across popular Android\nbrowsers.\n\nYou can test this now with our [sample](https://github.com/GoogleChrome/android-browser-helper/tree/master/demos/custom-tabs-example-app) on GitHub.\n\nWhen should I use Custom Tabs?\n------------------------------\n\nThere is no single \"correct\" way to load web content. In certain situations,\nWebView is going to be the right technology to use. For example, if you are\nexclusively hosting your own content inside your app, or if you need to inject\njavascript directly from your app. If your app directs people to URLs outside\ndomains, the built-in shared state in Custom Tabs means they are likely a\nbetter choice. Other strengths of Custom Tabs include:\n\n1. Security: Custom Tabs use Google's Safe Browsing to protect the user and the device from dangerous sites.\n2. Performance optimization:\n 1. Pre-warming of the Browser in the background, while avoiding stealing resources from the application.\n 2. Speed up the page load time by speculatively loading URLs in advance.\n3. Lifecycle management: Apps launching a Custom Tab won't be evicted by the system during the Tab's use. The importance of the Custom Tab is raised to the *foreground* level.\n4. Shared cookie jar and permissions model so users don't have to sign in to sites they are already connected to, or re-grant permissions they have already granted.\n5. Browser features like autofill for better form completion are available out-of-the-box.\n6. Users can return to app with an integrated back button.\n\nCustom Tabs versus Trusted Web Activity\n---------------------------------------\n\n[Trusted Web Activities](/develop/ui/views/layout/webapps/trusted-web-activities) extend the Custom Tabs protocol and shares most of\nits benefits. But, instead of providing a customized UI, it allows developers to\nopen a browser tab without any UI at all. It is recommended for developers who\nwant to open their own [Progressive Web App](https://web.dev/progressive-web-apps/), in full screen, inside their\nown Android app.\n\nWhere are Custom Tabs available?\n--------------------------------\n\nCustom Tabs is a feature supported by browsers on the Android platform. It was\noriginally introduced by [Chrome](https://play.google.com/store/apps/details?id=com.android.chrome), on version 45. The protocol is supported\nby most Android browsers.\n\nWe're looking for feedback, questions and suggestions on this project, so we\nencourage you to file issues on [crbug.com](https://crbug.com) and ask questions on Twitter\n[@ChromiumDev](https://twitter.com/ChromiumDev).\n\nLearn more\n----------\n\nFor questions, check the [chrome-custom-tabs](https://stackoverflow.com/questions/tagged/chrome-custom-tabs) tag on StackOverflow."]]