Chrome カスタム タブを使用するには、ユーザーが Chrome(ベータ) を個別にダウンロードする必要がありますか?それとも、Chrome カスタム タブをアプリケーションに実装するときに含まれますか?
3 に答える
Chrome ブラウザーがインストールされていない場合は、必要に応じて代わりに CustomTabFallback を使用できます。ここでは、その場合の代替ソリューションを実装できます。
/**
* A Fallback that opens the WebviewActivity when Custom Tabs is not available
*/
public final class WebviewFallback implements CustomTabActivityHelper.CustomTabFallback {
@Override
public void openUri(final Activity activity, final Uri uri) {
final Intent intent = new Intent(activity, WebviewActivity.class);
intent.putExtra(WebviewActivity.EXTRA_URL, uri.toString());
activity.startActivity(intent);
}
}
ここでは、Activity を使用して URL を読み込みます。これは WebView を使用するだけで、Uri を渡すだけです。それは本当にあなたが必要とするものに依存します. したがって、必要に応じて複数のフォールバック タイプを使用できます。
カスタム タブを機能させるには、カスタム タブをサポートするブラウザがインストールされている必要があります。
バージョン 45 以降、製品版の Chrome では既に利用可能です。
現在、対応しているブラウザは Chrome のみですが、オープンプロトコルであるため、将来的には他のブラウザも対応する予定です。
@andrebanの答えは正しかった。もう少し詳しく説明したいと思います。
はい、カスタム タブを機能させるには、Chrome v45 以降が必要です。ただし、 を送信するためIntent.ACTION_VIEW
、Android は既定のブラウザーを起動します。に入力したすべてのパラメーターを無視するだけですintent
。
ドキュメントから:
ACTION_VIEW インテントを使用しています。これは、デフォルトでページがシステム ブラウザまたはユーザーのデフォルト ブラウザで開くことを意味します。
ユーザーが Chrome をインストールしていて、それがデフォルトのブラウザーである場合、自動的に EXTRAS が選択され、カスタマイズされた UI が表示されます。別のブラウザーがインテント エクストラを使用して、同様のカスタマイズされたインターフェイスを提供することも可能です。