Android では、アプリ内でウェブの機能を活用できます。そのため、特定の種類のコンテンツを表示できる柔軟性と効率性のメリットを享受できます。
これにより、既存のウェブ コンテンツを Android アプリにシームレスに統合できます。たとえば、ニュース フィードの表示、インタラクティブなチュートリアルの表示、広告の表示、ミニゲームのホストなどを、すべてをゼロから構築することなく実現できます。アプリ内からインターネットにアクセスするためのウィンドウと考えることができます。アプリにウェブ コンテンツを埋め込む方法は 2 つあります。
WebView: UI のカスタマイズや更新に高い柔軟性が必要な場合に、管理するウェブ コンテンツをインラインで表示します。Custom Tabs: ユーザーのデフォルト ブラウザ(ブラウザのサポートをご覧ください)を利用した、アプリ内での完全なブラウジング エクスペリエンスです。ユーザーがリンクをクリックしたときに、外部ブラウザに移動するのではなく、アプリ内にとどまるようにしたい場合に使用します。ブラウジング エクスペリエンスの大部分は、すぐに利用できます。
ウェブ コンテンツを埋め込む理由
アプリにウェブ コンテンツを埋め込むことには、次のようなメリットがあります。
- 効率性: ウェブサイトの既存のコードを再利用します。既存のウェブ技術とコンテンツをベースに構築する。
- 統合: アプリ内で、メディアや広告などのサードパーティ プロバイダの外部コンテンツを使用します。
- 柔軟性: 事前定義された UI に制約されることなく、またアプリのアップデートをリリースすることなく、コンテンツを動的に更新できます。
ウェブ コンテンツを使用するタイミング
Android アプリでウェブを使用する主なユースケースは 3 つあります。
1. ウェブ コンテンツをメイン コンテンツまたは補助コンテンツとしてアプリに埋め込む: WebView を使用します。
- UI のカスタマイズや更新に高い柔軟性が必要な場合に、独自のウェブ コンテンツをインラインでメインのエクスペリエンスとして表示する。
- 広告、法的条項、規則、その他の第三者のコンテンツなどの他のコンテンツを、インラインで、またはアプリ エクスペリエンス内のウィンドウとして表示する。
2. Custom Tabs を使用したアプリ内ブラウジング、またはより高度なユースケース向けの WebView
- ユーザーがリンクをクリックしたときに、外部ブラウザに移動するのではなく、アプリ内にとどまるようにしたい場合に、完全なアプリ内ブラウジング エクスペリエンスを提供します。
- 注: タブレットや折りたたみ式デバイスなどの大画面デバイスでは、アプリが追加のスペースを活用できるように、追加のオプションが用意されています。
- アプリは、隣接するマルチウィンドウ エクスペリエンスを起動して、分割画面でウェブリンクを開くことができます。これにより、ユーザーはアプリとブラウザを同時にマルチタスクで使用できます。または
Custom Tabsには、同じタスク内で、既存のアプリ コンテンツの横に開くことができるサイドパネル オプションがあります。
Custom Tabは、Custom Tabsをサポートするブラウザの場合、ユーザーのデフォルトのブラウザによって動作します。WebViewを使用して、高度にカスタマイズ可能なアプリ内ブラウジング エクスペリエンスを提供することもできますが、ユーザーがブラウザでウェブリンクを開くときに、すぐに使えるブラウザ エクスペリエンスとシームレスな移行を実現するには、Custom Tabsをおすすめします。
3. アプリ内のログインまたは認証フロー
Android で推奨されるアプローチは、認証情報マネージャーを使用してログインフローまたは認証フローを構築することです。これらのエクスペリエンスで埋め込みウェブを使用する必要がある場合は、次のガイダンスを使用してください。
- 一部のアプリでは、
WebViewを使用して、アプリ固有のユーザー名とパスキー(またはパスワード)の使用など、ユーザーのログインフローを提供しています。これにより、デベロッパーはプラットフォーム間で認証フローを統合できます。 - サードパーティの ID プロバイダやログイン エクスペリエンス(「...でログイン」など)にリンクする場合は、
Custom Tabsを使用します。Custom Tabを起動すると、ユーザーの認証情報をサードパーティのサイトに限定して保持できるため、認証情報の保護に役立ちます。
認証に WebView を使用する方法については、WebView を使用してユーザーを認証するをご覧ください。Custom Tab を起動する方法については、Android カスタムタブの概要をご覧ください。